Документация предполагает, что использование columnDefinition является непереносимым ...
Это правда.columnDefinition
указывает тип данных SQL, который будет использоваться.Однако этот тип данных может быть доступен не во всех РСУБД.В JPA обязанность провайдера JPA выяснить, какой SQL работает с какой БД.Вы можете указать часть этой конфигурации, но вы всегда будете рисковать нарушением поддержки некоторых баз данных.
@Temporal
, с другой стороны, является абстракцией, которая является частьюстандарта JPA.Каждый поставщик JPA должен иметь возможность сопоставлять различные типы @Temporal
с различными типами SQL для всех поддерживаемых баз данных.