Я могу сохранить информацию о часовом поясе в 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