[英]Spring boot JPA error in gradle build from docker
我有一個 Gradle 項目,我添加了 jpa 到它:
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.4.3'
implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.23'
在 application.properties 我添加了以下幾行:
spring.datasource.url=jdbc:mysql://user:pass@localhost/dbname
spring.datasource.username=null
spring.datasource.password=null
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
### Hibernate Properties
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto = update
當 mysql 服務器托管在機器上時,它工作正常。 但是當我使用./gradlew build
命令在 docker 中構建我的 spring 引導應用程序時,沒有托管 mysql 它給了我一個例外:
oreApplicationTests > contextLoads() FAILED
java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1796
Caused by: javax.persistence.PersistenceException at AbstractEntityManagerFactoryBean.java:403
Caused by: org.hibernate.exception.JDBCConnectionException at SQLStateConversionDelegate.java:112
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException at SQLError.java:174
Caused by: com.mysql.cj.exceptions.CJCommunicationsException at NativeConstructorAccessorImpl.java:-2
Caused by: java.net.UnknownHostException at InetAddress.java:797
我不想在構建過程中出現這些錯誤,我只想在使用 jars 時打開 mysql 服務器。 所以我不希望在編譯時出現這些錯誤。
我在使用 MySQL 時遇到了類似的錯誤。 我的解決方案是將方言添加到 .properties 文件夾中。 我發現錯誤來自 JPA 不知道根據數據庫使用哪種方言。
spring.jpa.database-platform=org.hibernate.dialect。{您的方言在這里}
還要記住,默認情況下,測試希望在 memory 數據庫中運行,因此您需要連接測試以按預期運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.