我有一個名爲ETL_TABLES的表,它駐留在公共模式中。在 我application.conf我有以下行:未找到關係play和postgres的錯誤(當表存在時)
hibernate.default_schema=public
應該指的Postgres SEARCH_PATH設置爲public模式。
我有一個類Tables
,與@Table(name="ETL_TABLES")
註釋。 但是,當我嘗試訪問實體類,例如通過 Tables.findAll();
然後錯誤說關係「public.etl_tables」 不存在。
表格存在於postgres公共架構上,那麼我在做什麼 這裏錯了?
你連接到哪個服務器?它可能是你連接到另一臺服務器,例如本地主機? – Bohemian
最有可能是一個名稱案例問題 - 引用和全部上限創建和未引用(因此所有小寫)的使用。更多信息 - http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS(查找「帶引號的標識符」) –
我可以確保hibernate使用帶引號和全部大寫選項。我在@Table註釋中使用了大寫字母。由休眠生成的查詢是選擇tables0_.ID作爲ID0_,tables0_.COPY作爲COPY0_,tables0_.QUERY作爲QUERY0_,tables0_.TABLENAME作爲TABLENAME0_來自public.ETL_TABLES tables0_ – waalp