Таракан Db ​​с Spring Boot

При использовании Coacreach Db с Spring Boot и Spring Batch я получаю следующую ошибку.

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

Подробно: Система не может найти указанный путь.

Приложение.properties

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

Я также добавил это и выше свойства, как упоминалось где-то, но не помогло.

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

person Chandresh Mishra    schedule 06.05.2020    source источник


Ответы (2)


Из любопытства, какую операционную систему вы используете? У нас есть открытая проблема, связанная с часовыми поясами, которая, как известно, влияет на Windows.

Когда вы указываете часовой пояс UTC, вы получаете ту же ошибку, что и с «Европа/Лондон»? Что, если вы попытаетесь использовать числовое смещение, например «+0:00»?

Кроме того, при установке часового пояса через URL-адрес параметр должен быть timezone=utc (или любое другое значение, которое вы хотите).

person rafiss    schedule 13.05.2020
comment
да, я использую машину Windows. Как установить его через URL? - person Chandresh Mishra; 14.05.2020
comment
Попробуйте использовать этот URL-адрес: jdbc:postgresql://localhost:26257/defaultdb?sslmode=disable&timezone=UTC - person rafiss; 14.05.2020

Итак, видим ряд вопросов.

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? 2) Я не установил часовой пояс Европа/Лондон, не знаю, куда он идет. 3) пространство не решило проблему. - person Chandresh Mishra; 10.05.2020
comment
Ну, URL-адрес базы данных должен быть известен только вам, но если это CoacreachDB, как вы сказали, тогда в URL-адресе не должно быть Posgres. jdbc:postgresql://localhost и не должен использовать драйверы Postgres org.postgresql.Driver - person BrianC; 11.05.2020
comment
нет драйвера для таракан дб - person Chandresh Mishra; 12.05.2020
comment
Драйвера JDBC вообще нет? Тогда вы никогда не сможете использовать его в Java, поэтому я сомневаюсь, что это так. В любом случае, знание того, что вы используете неправильный, не сработает. - person BrianC; 13.05.2020
comment
@BrianC CockroachDB совместим с Postgres по проводам. @ChandreshMishra правильно использует драйвер PGJDBC и URL-адрес с префиксом postgresql. У нас есть учебник, чтобы начать работу с CockroachDB и Spring Boot. (отказ от ответственности: я работаю над CockroachDB.) спящий режим - person rafiss; 13.05.2020