【问题标题】:hibernate map java Long to MySQL BIGINT errorhibernate map java Long to MySQL BIGINT错误
【发布时间】:2011-03-19 23:01:47
【问题描述】:

我在 MySQL 中有一个 id 字段类型为 BIGINT 的表

在休眠对象中,我对该字段使用 java Long 类型

但是当运行程序时,它会抛出异常: Expected: class java.lang.Long, got class java.lang.Integer

如何在休眠中映射 MySQL BINGINT 数据类型?

【问题讨论】:

  • 对 BIGINT 使用 Long 是正确的。请显示您的映射、您正在运行的代码和完整的堆栈跟踪。
  • 好的,我为我的方法 cellDao.get(Integer id) 定义了错误的参数。我修复了它,现在它运行良好。谢谢

标签: java mysql hibernate


【解决方案1】:

但是当运行程序时,它会抛出异常:Expected: class java.lang.Long, got class java.lang.Integer

将Long 用于BIGINT 是正确的,上述错误表明您以某种方式传递了Integer,而Long 应该在您的代码中某处出现。仔细检查您的代码。

【讨论】:

    【解决方案2】:

    如果您在映射参数中添加 columnDefinition = “bigint(20)” 之类的 columnDefinition 会有帮助吗?

    【讨论】:

    • 我使用 hibernate xml 配置文件,并且不知道如何配置 columnDefinition 参数:|
    • 很抱歉,这怎么可能有帮助?
    • 有时hibernate无法弄清楚如何正确映射sql-type,但你是对的,在这种情况下错误消息看起来略有不同。原因:org.hibernate.HibernateException:TEST.EXAMPLE 中列 FOO 的列类型错误。找到:long,预期:整数
    猜你喜欢
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 2018-12-09
    • 2013-07-15
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    相关资源
    最近更新 更多