Изменение имени базы данных в спящем режиме дает MySQLSyntaxErrorException: таблица не существует - PullRequest
0 голосов
/ 22 февраля 2012

Раньше у меня была база данных с именем database, и все работало хорошо, используя hibernate и его модели.

Я удалил <property name="hibernate.hbm2ddl.auto">, чтобы избежать обновления или создания как рабочего сервера, мы хотим сделатьэто вручную.

Недавно мы переключились на database2, поэтому мы переключили файл конфигурации hibernate и все модели XML hibernate.

`<class name="com.api.models.database.MmApplications" table="mm_applications" catalog="database2">`

, но он продолжает искать событие database, еслимы перенесли базу данных, модели и связь.

 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'database.mm_applications' doesn't exist

Кто-нибудь может мне помочь?

ОБНОВЛЕНИЕ ----

Hibernate подключается к нужной базе данных(database2), но есть префикс в виде префикса database., заставляющий запросы попадать на database вместо database2, и когда я пытаюсь принудительно default_schema, мои запросы становятся:

`... from database.database2.mm_applications ....`

Есть идеи?

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Моя база данных указана в свойстве hibernate.connection.url. Вы тоже это изменили? Примером может быть: jdbc:mysql://localhost/mydatabase

Кроме того, вместо удаления hibernate.hbm2ddl.auto, возможно, вам следует установить его значение на validate. Таким образом, hibernate обеспечит соответствие модели данных схеме базы данных.

0 голосов
/ 24 февраля 2012

Я обнаружил проблему, это было другое приложение, развернутое на том же сервере Tomcat, использующее также спящий режим с другой базой данных (database), конфликтующее с новым приложением ...

Все еще существуетчто-то странное, подключившись к любой базе данных, hibernate будет использовать указанный каталог в моделях hibernate и, таким образом, создаст запрос с использованием catalog.table_name

Надеюсь, это когда-нибудь кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...