Kecoa Db dengan Spring Boot

Saat menggunakan Coacroach Db dengan Spring Boot dan Spring Batch, saya mendapatkan kesalahan berikut.

org.postgresql.util.PSQLException: ERROR: invalid value for parameter "TimeZone": "Europe/London"

Detail: Sistem tidak dapat menemukan jalur yang ditentukan.

Aplikasi.properti

spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL95Dialect
spring.datasource.username=root
spring.datasource.password=
spring.datasource.type=com.zaxxer.hikari.HikariDataSource

spring.datasource.url=jdbc:postgresql://localhost:26257/defaultdb?sslmode=disable&serverTimezone=UTC&useLegacyDatetimeCode=false

spring.jpa.properties.hibernate.jdbc.time_zone= UTC

spring.batch.initialize-schema = always

Saya juga menambahkan properti ini dan di atas seperti yang disebutkan di suatu tempat tetapi tidak membantu.

@PostConstruct
void started() {
  TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}

person Chandresh Mishra    schedule 06.05.2020    source sumber


Jawaban (2)


Karena penasaran, sistem operasi apa yang Anda gunakan? Kami mempunyai masalah terbuka terkait zona waktu, yang diketahui memengaruhi Windows.

Saat Anda menentukan zona waktu UTC, apakah Anda menerima kesalahan yang sama seperti yang Anda alami dengan "Eropa/London"? Bagaimana jika Anda mencoba menggunakan offset numerik, seperti "+0:00"?

Selain itu, saat menyetel zona waktu melalui URL, parameternya harus timezone=utc (atau nilai lain apa pun yang Anda inginkan).

person rafiss    schedule 13.05.2020
comment
ya, saya menggunakan mesin windows. Bagaimana cara mengaturnya melalui URL? - person Chandresh Mishra; 14.05.2020
comment
Coba gunakan URL ini: jdbc:postgresql://localhost:26257/defaultdb?sslmode=disable&timezone=UTC - person rafiss; 14.05.2020

Jadi lihatlah sejumlah masalah.

1.  You said you are using Coacroach Db but you seem to be loading a JDBC JAR and ULR string for Postgres.  

2.  Posgres does not have "Europe/London" as a valid TimeZone String.  There is a "Europe/London GB GB-Eire" 
See: https://www.postgresql.org/docs/8.1/datetime-keywords.html

3.  You have a space in the time zone property name.
    This:       spring.jpa.properties.hibernate.jdbc.time_zone= UTC
    Should Be:  spring.jpa.properties.hibernate.jdbc.time_zone=UTC
person BrianC    schedule 08.05.2020
comment
1) URL apa yang seharusnya benar? 2) Saya belum menetapkan zona waktu Eropa/London, tidak yakin akan datang ke mana. 3) ruang tidak menyelesaikan masalah. - person Chandresh Mishra; 10.05.2020
comment
Ya, URL database mungkin hanya Anda yang mengetahuinya, tetapi jika itu adalah CoacroachDB seperti yang Anda katakan, maka URL tersebut tidak boleh berisi Posgres di dalamnya. jdbc:postgresql://localhost dan tidak boleh menggunakan driver Postgres org.postgresql.Driver - person BrianC; 11.05.2020
comment
tidak ada driver untuk kecoa db - person Chandresh Mishra; 12.05.2020
comment
Tidak ada driver JDBC sama sekali? Maka Anda tidak akan pernah bisa menggunakannya di Java, jadi saya ragu itu masalahnya. Apa pun yang terjadi, mengetahui penggunaan yang salah tidak akan berhasil. - person BrianC; 13.05.2020
comment
@BrianC CockroachDB kompatibel dengan Postgres. @ChandreshMishra benar menggunakan driver PGJDBC dan URL dengan awalan postgresql. Kami memiliki tutorial di sini untuk memulai dengan CockroachDB dan Spring Boot. (penafian: Saya bekerja di CockroachDB.) cockroachlabs.com/blog/tutorial-spring- hibernasi - person rafiss; 13.05.2020