使用 Hibernate 将 Java 应用程序从 DB2 迁移到 BigQuery 时出现错误“找到:int64,预期:整数”

Posted

技术标签:

【中文标题】使用 Hibernate 将 Java 应用程序从 DB2 迁移到 BigQuery 时出现错误“找到:int64,预期:整数”【英文标题】:Getting Error "Found: int64, expected: integer" while Migrating Java application with Hibernate from DB2 to BigQuery 【发布时间】:2020-11-20 16:23:35 【问题描述】:

我正在尝试将 Java 应用程序后端从 DB2 迁移到 BigQuery,但出现数据类型不匹配错误。 在 DB2 和 BigQuery 中,字段类型被定义为 INTEGER,但在 BigQuery 中 INTEGER 是 INT64。 因此,当 Java 应用程序尝试引用此字段时,它会给出错误: org.hibernate.HibernateException 错误发现:int64,预期:整数

Java 应用程序是使用 Spring Roo 和 Hibernate 构建的,为了将此 Java 应用程序连接到 BigQuery,我正在使用 Simba 驱动程序。

所以要么在 Google Cloud Bigquery 中有一种方法,要么如果我可以将 INT64 转换为 INTEGER,但是如何或是否有人可以建议任何其他方法。

【问题讨论】:

【参考方案1】:

我的应用程序中有一个 Hibernate 配置,它将后端数据类型与 Java 代码中定义的字段的数据类型进行比较。 执行此操作的配置/属性,

<property name="hibernate.hbm2ddl.auto" value="validate"/>

我把它注释掉了。 这是一个参考视频,为什么我的生产环境不需要它。 https://www.youtube.com/watch?v=WJGbbqu0wxw

【讨论】:

以上是关于使用 Hibernate 将 Java 应用程序从 DB2 迁移到 BigQuery 时出现错误“找到:int64,预期:整数”的主要内容,如果未能解决你的问题,请参考以下文章

在Java中使用hibernate从数据库中填充组合框

使用 Hibernate 将数据库从 mysql 更改为 oracle

Hibernate 5:使用命名查询和无状态会话返回 java.lang.UnsupportedOperationException

如何使用 Hibernate、Spring MVC 将数据从单个表单发送到多个数据库表

(java)如何将从数据库中查询出来的结果集转换为对应类的对象?可考虑hibernate。

springboot+kotlin+gradle+hibernate学习笔记