簡體   English   中英

Spring 啟動 JPA 錯誤 gradle 從 docker 構建

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM