播放和postgres没有找到关系错误(表存在时)

时间:2011-07-19 11:23:54

标签: hibernate postgresql playframework

我有一个名为ETL_TABLES的表,它驻留在公共模式上。在 我的application.conf我有以下几行:

hibernate.default_schema=public

这应该意味着postgres的search_path被设置为公共模式。

我有一个Tables课,有@Table(name="ETL_TABLES")注释。 但是当我尝试访问实体类时,例如通过 Tables.findAll();然后错误说关系“public.etl_tables” 不存在。

该表存在于postgres公共架构中,所以我在做什么 这里错了吗?

3 个答案:

答案 0 :(得分:1)

确保您已设置postgresql dialect:

jpa.dialect=org.hibernate.dialect.PostgreSQLDialect

答案 1 :(得分:0)

显然在你的配置中我需要在创建实体时写这个:

@Table(name="\"ETL_TABLES\"")

所以我必须用\“来表示select中所需的双引号。

答案 2 :(得分:0)

我遇到了这个问题,事实证明hibernate默认情况下不喜欢实体中的映射表名(我确信有一些配置可以覆盖它!)。所以它找不到关系'Article'但会找到'article'或'ARTICLE'。希望这能帮助那些来到这个主题的人