java – @Temporal首选@Column columnDefinition?

前端之家收集整理的这篇文章主要介绍了java – @Temporal首选@Column columnDefinition?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
哪个是最佳做法?
@Column(name = "FOO",columnDefinition = "TIMESTAMP")
private Date foo;

要么

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

文档表明使用columnDefinition是不可移植的……

解决方法

The documentation suggests that using columnDefinition is non-portable

确实如此. columnDefinition指定了将使用的sql数据类型.但是,此数据类型可能并非在所有RDBMS中都可用.在JPA中,JPA提供者有责任弄清楚sql在哪个DB上工作.您可以指定部分配置,但始终存在破坏对某些数据库支持的风险.

另一方面,@Temporal是一种抽象,是JPA标准的一部分.每个JPA提供程序必须能够将不同类型的@Temporal映射到所有受支持数据库的不同sql类型.

猜你在找的Java相关文章