2014-01-27 5 views
0

У меня проблема с PostgreSQL с JPA.postgresql + jpa + persistence.xml

Когда я пытаюсь выполнить мое приложение на 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

По умолчанию нет необходимости устанавливать схему. Вы установили «DatabaseName» в настройках пула соединений JDBC Glassfish? – unwichtich

+0

точно да, я использую работу с бассейнами jdbc в стеклянной платке. Я не сталкивался с какой-либо проблемой с MS SQL Server или MySQL. Но с postgresql он не работает –

ответ

0

В postgres указана переменная "search_path".

Чтобы решить проблему, у вас есть 2 решения:

Постоянно добавить поиск для пользователя, используемого подключения:

ALTER user username set search_path=yourschema ; 

Добавить temporarly в search_path в JDBC соединения (которые я найти уродливое)

set search_path=yourschema; 
+0

Я пробовал это, но он не работает :( –

Смежные вопросы