@Temporal предпочтительнее, чем @Column columnDefinition? - PullRequest
6 голосов
/ 19 июля 2011

Какая лучшая практика?

@Column(name = "FOO", columnDefinition = "TIMESTAMP")
private Date foo;

Или

@Column(name = "FOO")
@Temporal(TemporalType.TIMESTAMP)
private Date foo;

В документации предполагается, что использование columnDefinition непереносимо ...

1 Ответ

9 голосов
/ 19 июля 2011

Документация предполагает, что использование columnDefinition является непереносимым ...

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

@Temporal, с другой стороны, является абстракцией, которая является частьюстандарта JPA.Каждый поставщик JPA должен иметь возможность сопоставлять различные типы @Temporal с различными типами SQL для всех поддерживаемых баз данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...