Я хочу подписать токен jwt с LocalDateTime
, который получен после создания пользователя. После этого мне нужно проверить, является ли jwt действительным, и я достигаю этого с датой, полученной из БД.
Проблема в том, что LocalDateTime
при создании содержит наносекунды, а дата из БД - нет, а затем проверка не пройдена.
Я пытаюсь решить эту проблему с помощью форматирования LocalDateTime
для отображения даты без наносекунд, но есть другая проблема. LocalDateTime
округляется до минимального значения (например, 1,222 равно 1, а 1,777 равно 1), а дата, вставленная в БД, округляется, как и это значение: 1,222 равно 1, 1,777 равно 2, поэтому проверка снова не удалась.
Мне удалось разрешить добавив @Column(columnDefinition = "TIMESTAMP (6)")
к моему полю в сущности, и теперь наносекунды также хранятся в БД, и все работает, но я не уверен, что это правильное решение.
Так есть ли лучшее решение? Можно ли как-нибудь округлить LocalDateTime
так же, как в БД (и оставить тип поля БД как DATETIME
, а не TIMESTAMP
), или можно округлить дату БД как LocalDateTime
.
Я использую весеннюю загрузку 2.2.4