我想使用hibernate加入两个表。在我的模型中表示的连接列是一个String(它在我的数据库中是一个varchar(10))。当我运行HQL查询时,我看到的是以下错误,“将varchar值'AS00'转换为数据类型int时转换失败。”AS500“是第一行中连接列的第一个值。
我不知道为什么hibernate会这样做。我的连接列不是int。我检查了与我的表对应的两个模型,它们都被定义为字符串。对可用于连接列的数据类型是否有某种限制?
答案 0 :(得分:1)
请发布你的模型和hql查询。
如果我不得不猜测(并且我们所有人都可以在没有细节的情况下做),我会说你的hql查询不使用.setParameter并且它在查询中的字符串值周围没有单引号。 ..所以它试图将值隐式转换为int。
会导致此错误的示例:
Query query = session.createQuery("from Person where name = bob");