2015-06-05 3 views
1

Я довольно новичок в этом вопросе, и я хотел бы знать, что не так с тем, что я сделал до сих пор.DB2, Hibernate, JPA: Схема не существует

Так установить connectioin базы данных я создал persistence.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" 
      xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation=" 
     http://java.sun.com/xml/ns/persistence 
     http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="Primary"> 
     <class>xxx.model.Lecture</class> 
     <properties> 
      <property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" /> 
      <property name="javax.persistence.jdbc.url" value="jdbc:db2://localhost:50000/xxx" /> 
      <property name="javax.persistence.jdbc.user" value="xxx" /> 
      <property name="javax.persistence.jdbc.password" value="xxx" /> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect"/> 
      <property name="show_sql" value="true"/> 
      <property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

... и включал .jar драйвера: db2jcc4.jar

При запуске приложения я получаю следующая ошибка:

java.sql.SQLSyntaxErrorException: Schema 'DB2ADMIN' does not exist. 

Так ли я пропустил что-то важное?

Заранее благодарен!

+0

Похоже, вы работаете в Windows с именем пользователя db2admin. Если у вас ошибка DB2, вы должны искать код ошибки, начиная с SQLXXXX, где XXXX - четыре цифры. Попробуйте найти ошибку SQL, а затем мы можем вам помочь. Возможно, вы пытаетесь создать объект в этой схеме, и пользователь не имеет прав на создание в этой схеме. – AngocA

ответ

2

Короткие ответы: вам нужно указать имя схемы DB по умолчанию в файле persistence.xml.

… 
<property name="hibernate.default_schema" value="xxx"/> 
… 

Объяснение: Скорее всего, вы используете пользователь DB2ADMIN для подключения к БД. Имя схемы базы данных в DB2 (если явно не указано) равно имени пользователя, т. Е. DB2ADMIN. Такая схема не существует в вашей БД, поэтому у вас есть ошибка.

Необходимо указать правильное имя схемы базы данных в конфигурации JPA, то есть имя схемы, в которой находятся таблицы. Нет никакого свойства JPA для архивирования, но вы все равно используете спящий режим, поэтому для достижения этого вы можете использовать свойство hibernate.

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