Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LocalDateTime映射到Oracle日期,但不映射到H2日期_Oracle_Hibernate_H2_Liquibase - Fatal编程技术网

LocalDateTime映射到Oracle日期,但不映射到H2日期

LocalDateTime映射到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表

假设我有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表包含列
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版本?