所述referenceUrl的Liquibase JPA配置(Liquibase JPA confi

2019-10-19 00:20发布

我奋力打造JPA注释类DIFF变更对我的数据库,使用liquibase。 不过,我对一些事情很困惑。

我用的是以下几点:

liquibase.properties

#liquibase.properties
driver:                 org.postgresql.Driver
classpath:              real_path/.m2/repository/org/postgresql/postgresql/9.2-1002-jdbc4/postgresql-9.2-1002-jdbc4.jar
url:                    jdbc:postgresql://localhost:5432/diquiz
username:               postgres
password:               postgres
referenceUrl:           hibernate:ejb3:diQuiz
referenceUsername:      postgres
referencePassword:      postgres
changeLogFile:          changelog-master.xml

java -jar real_path\liquibase-core-3.0.6.jar diffChangeLog

和正常persistence.xml与标准JPA配置文件。

我得到它说的错误: Liquibase diffChangeLog Failed: java.lang.RuntimeException: Cannot find database driver: Driver class was not specified and could not be determined from the url (hibernate:ejb3:unit)

我很困惑,因为下面的回答说,我们需要一个hibernate.cfg.xml文件(连我都persistence.xml代替),但他说,我们可以使用这些wiki页面上定义了一些网址。 冬眠使用JPA(注释实体)和liquibase

Wiki页面说,如果我们需要使用JPA,我们可以选择三种类型的URL之间进行选择。

hibernate:ejb3:myPersistenceUnit
hibernate:ejb3:com.example.MyConfigFactory
hibernate:ejb3:myPersistenceUnit?hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy

所以,我选择的第一个,我已经在liquidbase.properties设置此为referenceUrl

此外,维基页面上被提及:( https://github.com/liquibase/liquibase-hibernate/wiki )

如果您正在使用Liquibase的命令行版本,你只需要在liquibase-休眠[3 | 4]添加.jar文件到LIQUIBASE_HOME / lib目录。

我这样做了。 不过,不工作。 有人可以解释我somewhow我失去了什么?

非常感谢!

Answer 1:

问题是,你正在呼吁liquibase与“Java的罐子”。 在罐中的类路径线不能从lib目录拾取附加罐等等liquibase-hibernate.jar没有被包含在类路径。

运行liquibase使用包括在liquibase罐子SH / bat文件: real_path/liquibase[.bat] diffChangeLog



文章来源: Liquibase JPA configuration of the referenceUrl