referenceUrl的Liquibase JPA配置

a64a0gku  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(163)

我正在努力使用liquibase针对我的数据库构建JPA注解的classes diff变更集。不过,我还是对一些事情感到困惑。
我使用以下方法:

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

和标准JPA配置的普通persistence.xml文件。
我得到一个错误,它说: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代替),但他说,我们可以使用一些url的定义在wiki页面。Hibernate using JPA (annotated Entities) and liquibase
Wiki页面上说,如果我们需要使用JPA,我们可以在三种类型的URL之间进行选择。

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

所以我选择了第一个,我在www.example.com中将其设置liquidbase.properties为referenceUrl
此外,在wiki页面上还提到:(https://github.com/liquibase/liquibase-hibernate/wiki
如果您使用的是命令行版本的Liquibase,那么只需添加liquibase-hibernate[3]| 4].jar文件到LIQUIBASE_HOME/lib目录。
这也是我做的还是不行。有人能给我解释一下我错过了什么吗?
非常感谢!

weylhg0b

weylhg0b1#

问题是您正在用“java -jar”调用liquibase。jar中的Class-path行不能从lib目录中获取其他jar,因此liquibase-hibernate.jar没有包含在类路径中。
使用包含在liquibase jar中的sh/bat文件运行liquibase:real_path/liquibase[.bat] diffChangeLog

相关问题