Вставка значения ZonedDateTime в временную метку Oracle со столбцом Timezone с помощью JPA

#oracle #spring-boot #hibernate #jpa

#Oracle #весенняя загрузка #переход в спящий режим #jpa

Вопрос:

В моем проекте SpringBoot я пытаюсь вставить ZonedDateTime значение в базу данных Oracle, где тип столбца указан как TIMESTAMP WITH TIMEZONE . Когда я это делаю, вставленное значение преобразуется в часовой пояс JVM и вставляется. Однако я ожидаю вставить значение в ZonedDateTime свойство таким, какое оно есть.

Например, если ZonedDateTime значение установлено на 2020-05-16T12:12:24 02:30[US/Denver] , то я ожидаю записать в БД то же значение и прочитать из БД то же значение. Могу ли я каким-либо образом сделать это с помощью Hibernate и JPA

 @Entity
class MyEntity{
   ZonedDateTime myDateTimeWithTimeZone;
} 

@Repository
public interface MyRepository extends JpaRepository<MyEntity, Long>
{
}
  

Вот как я собираюсь это использовать,

 MyEntity myEntity = new MyEntity();
myEntity.setMyDateTimeWithTimeZone(ZoneDateTime.now('US/Denver')) // This timezone can be anything depending on userInput
myRepository.save(myEntity);
  

Комментарии:

1. как вы делаете вставку? timestamp with time zone по умолчанию, когда зона не указана, получает значение сеанса на стороне клиента.

2. Я обновил свой вопрос с использованием