【问题标题】:Error occurring in Hibernate when join column is String当连接列是字符串时,Hibernate 中发生错误
【发布时间】:2014-01-08 13:03:28
【问题描述】:

我有两个要使用休眠加入的表。在我的模型中表示的连接列是一个字符串(它在我的数据库中是一个 varchar(10))。当我运行 HQL 查询时,我看到以下错误,“将 varchar 值 'AS00' 转换为数据类型 int 时转换失败。“AS500”是第一行中连接列的第一个值。

我不知道为什么hibernate会这样做。我的联接列不是 int。我已经检查了与我的表对应的两个模型,它们都被定义为字符串。可用于连接列的数据类型是否有某种限制?

【问题讨论】:

  • 您是否打开了 SQL 跟踪以查看本机 SQL 调用的样子?你能展示你的代码吗?

标签: java hibernate hql


【解决方案1】:

请同时发布您的模型和 hql 查询。

如果我不得不猜测(这就是我们任何人都可以做的没有细节),我会说您的 hql 查询不使用 .setParameter 并且它在您的查询中的字符串值周围没有单引号。 .. 所以它试图将值隐式转换为 int。

会导致此错误的示例:

Query query = session.createQuery("from Person where name = bob");

【讨论】:

    猜你喜欢
    • 2011-12-12
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 2016-11-18
    • 2017-02-17
    • 1970-01-01
    • 2011-08-17
    • 2013-02-11
    相关资源
    最近更新 更多