Java 是否首选@Temporal而不是@Column columnDefinition?
哪一种是最佳实践Java 是否首选@Temporal而不是@Column columnDefinition?,java,hibernate,jpa,Java,Hibernate,Jpa,哪一种是最佳实践 @Column(name = "FOO", columnDefinition = "TIMESTAMP") private Date foo; 或 文档表明使用columnDefinition是不可移植的 文档表明,使用columnDefinition是不可移植的 没错。指定将使用的SQL数据类型。但是,此数据类型可能并非在所有RDBMS中都可用。在JPA中,JPA提供者有责任弄清楚什么样的SQL在什么样的数据库上工作。您可以指定该配置的一部分,但总有破坏某些数据库支持的风
@Column(name = "FOO", columnDefinition = "TIMESTAMP")
private Date foo;
或
文档表明使用columnDefinition是不可移植的
文档表明,使用columnDefinition是不可移植的
没错。指定将使用的SQL数据类型。但是,此数据类型可能并非在所有RDBMS中都可用。在JPA中,JPA提供者有责任弄清楚什么样的SQL在什么样的数据库上工作。您可以指定该配置的一部分,但总有破坏某些数据库支持的风险
另一方面,是作为JPA标准一部分的抽象。对于所有受支持的数据库,每个JPA提供程序都必须能够将不同类型的@Temporal
映射到不同的SQL类型
@Column(name = "FOO")
@Temporal(TemporalType.TIMESTAMP)
private Date foo;