【问题标题】:Hibernate Criteria: relation “my_table” does not exist休眠条件:关系“my_table”不存在
【发布时间】:2018-09-18 06:29:48
【问题描述】:

我有一个实体:

@Table(schema="my_schema",name="my_table")
public class MyTable
...

我想从那个表中检索记录:

Criteria criteria = session.createCriteria(entityClass);
List list = criteria.list();

我明白了:

PSQLException: ERROR: relation “my_table” does not exist

我怀疑这是因为my_table前面缺少架构名称,但是如何添加它,或者可能还有其他原因?

【问题讨论】:

  • mytable 存在吗?你的连接字符串是什么?是否包含架构?
  • 你需要定义像 YOUR_SCHEMA_NAME 这样的模式
  • @Antoniossss 是的,它存在。我通过 JNDI 查找连接到数据库。不,它不包含模式名称,因为 DB 设计如此,有很多模式
  • @Sudhir Ojha 我正在使用 application.properties 文件,我添加了 hibernate.default_schema=MY_SCHEMA 但结果相同
  • 在连接字符串中包含模式名称 - 除非您使用多个模式?

标签: java hibernate criteria hibernate-criteria


【解决方案1】:

您的架构名称是否以大写开头? 我也有类似的情况,我的表名是users,架构是D2018

我有这样的错误:

org.postgresql.util.PSQLException:错误:关系“d2018.users”不存在

似乎休眠尝试连接到d2018 架构而不是D2018,所以我将我的架构重命名为d2018,现在它的工作完美无缺

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多