当我尝试使用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语句和手动执行的语句之间有什么区别?
答案 0 :(得分:2)
此问题是由多租户配置引起的,因此选择了错误的DataSource。
答案 1 :(得分:0)
根据您定义查询的方式,问题可能位于其他位置:例如,HQL查询使用"属性名称"类的名称,而不是列名。
如果你有类似的东西:
@Column("device_token")
private String deviceToken;
然后你的HQL-Query应该以" deviceToken"为目标。而不是" device_token"。我们也遇到过类似的错误:Hibernate正在报告" user_id"缺少,因为我们命名了属性" userId"仅使用列名称的下划线版本。
这对您来说可能不是问题,但值得仔细检查。