哪个是最佳实践?
@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 在什么数据库上工作。您可以指定该配置的一部分,但您将始终冒着破坏对某些数据库的支持的风险。
@Temporal
另一方面是作为 JPA 标准一部分的抽象。每个 JPA 提供程序都必须能够将不同类型的 @Temporal
映射到所有受支持数据库的不同 SQL 类型。
关于java - @Temporal 优于@Column columnDefinition 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6744195/