Hibernate:列不存在

时间:2015-04-11 15:19:36

标签: java spring hibernate postgresql

当我尝试使用Hibernate加载实体时,我在postgres-log中收到以下错误:

ERROR: column appuser0_.device_token does not exist at character 35
STATEMENT:  select appuser0_.id as id1_27_0_, appuser0_.device_token as device_t2_27_0_,....

列device_token肯定存在 - 如果我复制粘贴整个记录的语句并在PGAdmin中执行它,我得到预期的结果。

那我该忘记什么? Hibernate语句和手动执行的语句之间有什么区别?

2 个答案:

答案 0 :(得分:2)

此问题是由多租户配置引起的,因此选择了错误的DataSource。

答案 1 :(得分:0)

根据您定义查询的方式,问题可能位于其他位置:例如,HQL查询使用"属性名称"类的名称,而不是列名。

如果你有类似的东西:

@Column("device_token")
private String deviceToken;

然后你的HQL-Query应该以" deviceToken"为目标。而不是" device_token"。我们也遇到过类似的错误:Hibernate正在报告" user_id"缺少,因为我们命名了属性" userId"仅使用列名称的下划线版本。

这对您来说可能不是问题,但值得仔细检查。