Ответ 1
Официальное выражение от H2 заключается в том, что он не поддерживается, и обходной путь должен создать триггер. Вы можете прочитать это здесь https://github.com/commandos59/h2database/issues/491
Что бы вы ни указали в "columnDefinition", оно зависит от поставщика. И поскольку вы уже сопоставили свою сущность с этим определением столбца, вы не оставляете себе много места для маневра.
Есть несколько вещей, которые вы можете сделать. Некоторые из них взломаны.
- Смешайте конфигурацию XML для тестов. Конфигурация XML сущностей имеет более высокий приоритет, чем аннотации, поэтому вы можете переопределить определение столбца, специфичное для H2.
@Column (columnDefinition = "TIMESTAMP по умолчанию CURRENT_TIMESTAMP при обновлении CURRENT_TIMESTAMP") личное LocalDateTime thetime
-
Альтернативой Agnostic of Database является оставить ваше время генерации на уровне сервера приложений и подключить его к слушателям
@PrePersist
@PreUpdate
на объекте. -
Если временная метка должна быть сгенерирована базой данных, вы можете сделать что-то похожее на то, как генерируются идентификаторы. Имейте какой-то выделенный объект, который читает CURRENT_TIMESTAMP из базы данных и помещает его в сущность прямо перед тем, как вы сохранитесь, обновите.