gpt4 book ai didi

java - referenceUrl 的 Liquibase JPA 配置

转载 作者:行者123 更新时间:2023-11-29 05:34:24 27 4
gpt4 key购买 nike

我正在努力构建针对我的数据库的 JPA 注释类差异变更集,使用 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

和一个带有标准 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),但后来他说我们可以使用一些在 wiki 页面上定义的 url。 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

所以,我选择第一个,并在 liquidbase.properties 中将其设置为 referenceUrl

此外,在 wiki 页面上提到:( https://github.com/liquibase/liquibase-hibernate/wiki )

If you are using the command line version of Liquibase, you simply have to add the liquibase-hibernate[3|4].jar file to the LIQUIBASE_HOME/lib directory.

我也是这样做的。仍然,不起作用。有人能以某种方式向我解释我错过了什么吗?

非常感谢!

最佳答案

问题是您使用“java -jar”调用 liquibase。 jar 中的类路径行无法从 lib 目录中获取其他 jar,因此 liquibase-hibernate.jar 未包含在类路径中。

使用 liquibase jar 中包含的 sh/bat 文件运行 liquibase:real_path/liquibase[.bat] diffChangeLog

关于java - referenceUrl 的 Liquibase JPA 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20031317/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com