我在使用PostgreSQL和JPA时遇到问题。
当我尝试在glassfish上执行我的应用程序时出现此错误:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: no schema has been selected to create in
Error Code: 0
Call: CREATE TABLE CABINET (ID INTEGER NOT NULL, PRIMARY KEY (ID))
Query: DataModifyQuery(sql="CREATE TABLE CABINET (ID INTEGER NOT NULL, PRIMARY KEY (ID))")
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:331)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:895)
那么如何为JPA指定架构,以便能够使用postgresql
注意:我已经添加了postgresql maven依赖:
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901-1.jdbc4</version>
</dependency>
请帮帮我;谢谢
答案 0 :(得分:0)
使用postgres中的“search_path”变量指定模式。
要解决您的问题,您有两个解决方案:
将搜索永久添加到您的连接使用的用户:
ALTER user username set search_path=yourschema ;
临时添加jdbc连接中的search_path(我觉得很难看)
set search_path=yourschema;