Hibernate liquibase.exception.DatabaseException:java.lang.ClassNotFoundException
我是Liquibase和JHipster的新手,在使用maven插件生成差异时遇到了一些问题 运行Hibernate liquibase.exception.DatabaseException:java.lang.ClassNotFoundException,hibernate,maven,liquibase,jhipster,Hibernate,Maven,Liquibase,Jhipster,我是Liquibase和JHipster的新手,在使用maven插件生成差异时遇到了一些问题 运行mvn liquibase时,我遇到以下错误:diff-e-X 我的pom的相关部分是: <plugin> <groupId>org.liquibase</groupId> <artifactId>liquibase-maven-plugin</artifactId>
mvn liquibase时,我遇到以下错误:diff-e-X
我的pom的相关部分是:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<dependencies>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.18.2-GA</version>
</dependency>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate4</artifactId>
<version>${liquibase-hibernate4.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.1.Final</version>
</dependency>
</dependencies>
<configuration>
<changeLogFile>src/main/resources/config/liquibase/master.xml</changeLogFile>
<diffChangeLogFile>
src/main/resources/config/liquibase/changelog/${maven.build.timestamp}_changelog.xml
</diffChangeLogFile>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://localhost/shiftwork</url>
<defaultSchemaName/>
<username>postgres</username>
<password/>
<referenceUrl>hibernate:spring:com.teammachine.staffrostering.domain?dialect=org.hibernate.dialect.PostgreSQL94Dialect&hibernate.ejb.naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy</referenceUrl>
<verbose>true</verbose>
<logging>debug</logging>
</configuration>
</plugin>
<changeLogFile>src/main/resources/config/liquibase/master.xml</changeLogFile>
<diffChangeLogFile>
src/main/resources/config/liquibase/changelog/${maven.build.timestamp}_changelog.xml
</diffChangeLogFile>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://localhost/myApp</url>
<defaultSchemaName/>
<username>postgres</username>
<password/>
<referenceUrl>hibernate:spring:com.myapp.domain?dialect=&hibernate.ejb.naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy</referenceUrl>
<verbose>true</verbose>
<logging>debug</logging>
</configuration>
</plugin>
问题是您在
liquibase maven插件
配置的内部将方言
属性留空。插件,当然,失败了。到实现用于Hibernate的自定义方言的类
<referenceUrl>hibernate:spring:com.myapp.domain?dialect=&hibernate.ejb.naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy</referenceUrl>
<!-- ^^^^^^^^ -->
在插件依赖项中,您还依赖于Hibernate的冲突版本:
liquibase-hibernate4
,但您依赖于Hibernate Core 5.2.1.Final和。因此,您需要删除对hibernate core
@Magick的依赖关系,这是由hibernate版本冲突引起的另一个错误。最好发布一个与此相关的新问题,因为它实际上是不相关的。在这个新问题中,请务必发布Liquibase和Hibernate的确切版本。由于Liquibase本身依赖于hibernate 4,因此我将尝试删除对hibernate核心的依赖。
<referenceUrl>hibernate:spring:com.myapp.domain?dialect=&hibernate.ejb.naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy</referenceUrl>
<!-- ^^^^^^^^ -->
<referenceUrl>hibernate:spring:com.myapp.domain?dialect=org.hibernate.dialect.PostgreSQL94Dialect&hibernate.ejb.naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy</referenceUrl>