Информация о часовом поясе с JPA и Oracle - PullRequest
0 голосов
/ 24 апреля 2020

Я могу сохранить информацию о часовом поясе в Oracle через JDB C, но не могу сделать то же самое с JPA

Если я использую JDB C:

Insert into USER (EFFECTIVE_START_TMS) values (TIMESTAMP '2021-08-10 10:30:20.15 Europe/Madrid')";

В базе данных я вижу: 10-AUG-21 10.30.20.150000000 AM EUROPE/MADRID

Однако, когда я использую JPA:

ZoneId sg = ZoneId.of("Europe/Madrid");
String st = "2021-08-10T09:30:20Z";
ZonedDateTime zonedDateTime = ZonedDateTime.parse(st).withZoneSameInstant(sg);
User bu = new User();

bu.setEffectiveStartTms(zonedDateTime);
userRepo.save(bu);

Журналы JPA: binding parameter [1] as [TIMESTAMP] - [2021-08-10T11:30:20+02:00[Europe/Madrid]]

Но запись в базе данных: 10-AUG-21 11.30.20.000000000 AM ASIA/CALCUTTA

У меня есть это в моем приложении.properties:

spring.jpa.properties.hibernate.jdbc.time_zone=Europe/Madrid

Это сводит меня с ума:

Это занимает только время = 2021-08-10T11:30:20 и добавление к нему часового пояса Азии / Калькутты, что полностью меняет значение.

Вот как выглядит мой ответ get: "effectiveStartTms":"2021-08-10T11:30:20+05:30"

По сути: 11:30:20+02:00 получает преобразован в 11:30:20+05:30

Любая помощь по этому вопросу будет очень признателен Я использую Springboot 2.1 Hibernate 5.3 пружинные данные JPA 2.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...