【问题标题】:Hibernate 5.2.10 DDL auto-update to AWS RDS (MySql 5.6.10a) creates TINYBLOB for InstantHibernate 5.2.10 DDL 自动更新到 AWS RDS (MySql 5.6.10a) 为 Instant 创建 TINYBLOB
【发布时间】:2017-11-17 20:22:03
【问题描述】:

我有一个带有 java.time.Instant 类型的 @Column 的 JPA @Entity。我的理解是这应该映射到 TIMESTAMP 的列类型。但是,Hibernate 自动更新创建了类型为 TINYBLOB 的列,并且它存储在那里的数据不能转换回 Instant。我手动将@Column 类型更新为TIMESTAMP,但Hibernate 仍然失败,因为它尝试以TINYBLOB 格式插入数据。我读到here,Hibernate 5 开箱即用地处理了 JDK 8 类,所以我想知道为什么情况似乎并非如此。我使用 java.sql.Timestamp 解决了这个问题,但我不得不问,有没有办法让 Hibernate 将 Instant 作为 Timestamp 持久化?这是 JDBC 驱动程序问题还是 AWS RDS 提供的旧版本 MySQL 的问题?

【问题讨论】:

    标签: java mysql hibernate amazon-web-services jpa


    【解决方案1】:

    添加 hibernate-java8 依赖项应该可以解决您的问题。默认情况下,Java 的 Instant 在 RDS 中变为 datetime

    maven pom.xml 示例:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-java8</artifactId>
        <version>5.1.0.Final</version>
    </dependency>
    

    【讨论】:

      猜你喜欢
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多