LocalDateTime映射到Oracle日期,但不映射到H2日期
假设我有JPALocalDateTime映射到Oracle日期,但不映射到H2日期,oracle,hibernate,h2,liquibase,Oracle,Hibernate,H2,Liquibase,假设我有JPA@embeddeble: @Embeddable public class SpecificationValidity { @Column(name = "VALID_FROM", nullable = false) private final LocalDateTime validFrom; @Column(name = "VALID_TO") private final LocalDateTime validTo; } SQL表
@embeddeble
:
@Embeddable
public class SpecificationValidity {
@Column(name = "VALID_FROM", nullable = false)
private final LocalDateTime validFrom;
@Column(name = "VALID_TO")
private final LocalDateTime validTo;
}
SQL表包含列VALID\u FROM
和VALID\u TO
,并使用liquibase变更集声明如下:
<column name="VALID_FROM" type="date">
<constraints nullable="false"/>
</column>
<column name="VALID_TO" type="date"/>
当我在Oracle数据库上运行此代码时,一切正常
当我对H2数据库运行它时,是由以下原因引起的:org.hibernate.tool.schema.spi.SchemaManagementException:schema验证:在表[specification]的[valid_from]列中遇到错误的列类型;找到[日期(类型#日期)],但应为[时间戳(类型#时间戳)]
为什么
两个dbms是否可以有一致的映射?我假设您使用Hibernate(从异常消息中)。由于您使用的是java 8或更高版本,您可能需要将其添加到对hibernate 5.0.x的依赖项中
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-java8 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>5.3.7.Final</version>
</dependency>
org.hibernate
参考文章:
注意:对于Hibernate 5.2x及以上版本,不需要这种明确的依赖关系。
我假设您使用Hibernate(从异常消息中)。由于您使用的是java 8或更高版本,您可能需要将其添加到对hibernate 5.0.x的依赖项中
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-java8 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>5.3.7.Final</version>
</dependency>
org.hibernate
参考文章:
注意:对于Hibernate 5.2x及以上版本,不需要这种明确的依赖关系。
你使用的是什么版本的hibernate?你使用的是什么版本的hibernate?这不是我想要的答案。在我的例子中,java类中有我想要保留的LocalDateTime
DATE
也包含秒,因此这就是为什么LocalDateTime
是工作映射的原因,即使在上面的表中使用了TIMESTAMP
。问题是是否有可能在H2中也有类似的东西。你使用的是什么hibernate版本?这不是我想要的答案。在我的例子中,java类中有我想要保留的LocalDateTime
DATE
也包含秒,因此这就是为什么LocalDateTime
是工作映射的原因,即使在上面的表中使用了TIMESTAMP
。问题是H2中是否也可能有类似的东西。您使用的是什么hibernate版本?