哪一种是最佳实践?
@Column(name = "FOO", columnDefinition = "TIMESTAMP")
private Date foo;或
@Column(name = "FOO")
@Temporal(TemporalType.TIMESTAMP)
private Date foo;文档建议使用columnDefinition是不可移植的……
发布于 2011-07-19 16:23:20
文档建议使用columnDefinition是不可移植的...
那是真的。columnDefinition指定将使用的SQL数据类型。但是,此数据类型可能在所有RDBMS中都可用。在JPA中,JPA提供者有责任弄清楚哪种SQL在哪种数据库上工作。您可以指定该配置的一部分,但您将始终冒着破坏对某些数据库的支持的风险。
另一方面,@Temporal是一个抽象概念,是JPA标准的一部分。对于所有支持的数据库,每个JPA提供者都必须能够将不同类型的@Temporal映射到不同的SQL类型。
https://stackoverflow.com/questions/6744195
复制相似问题