2016-05-31 2 views
4

Я пытаюсь понять, как настроить мой Hibernate для правильной работы с моей MSSQL DB и его схемами.MSSQL schema & Hibernate 5.1.0.Final (таблица не найдена)

Проблема заключается в том, что во время проверки таблиц, он записывает (для каждой таблицы):

org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl 
- HHH000262: Table not found SHARED_CONFIGURATION 

Я отлажена Hibernate, чтобы выяснить, что вызывает это и обнаружил, что она вызывает что-то вроде:

EXECUTE [mydb]..sp_columns N'SHARED_CONFIGURATION',N'',N'mydb' 

Обратите внимание, что 2-й параметр - это имя схемы и пустая строка. Когда я попытался запустить этот запрос против БД, он вернул пустой набор результатов. Но когда я передал «dbo» в качестве второго параметра, набор результатов не был пустым (это означает, что Hibernate должен это назвать).

ОК, так что мне казалось, что мне нужно определить схему. Но как установка hibernate.default_schema или настройка схемы в @Table аннотацию на моих entites бросил исключение:

Schema-validation: missing table [SHARED_CONFIGURATION] 

Так что теперь мне интересно, что это реальная проблема. Я также хотел установить схему по умолчанию в моей БД, но не был разрешен (не может изменять пользователя «sa», потому что он не существует или у вас нет разрешения.) Даже при выполнении с самим пользователем:

ALTER USER sa WITH DEFAULT_SCHEMA = dbo; 

Обратите внимание, что это происходит с любым драйвером (JTDS, официальный MS-драйвер ..) Может кто-нибудь объяснить, что здесь происходит и как «правильно» избавиться от этого предупреждающего сообщения в журнале, что таблица не существует, даже если она существует (и приложение может нормально работать с базой данных)?

+0

ли вы раскрыть причину этого? У меня такая же проблема. –

+0

К сожалению, я не сделал – d1x

ответ

0

У меня была такая же проблема, и решить, установив свойство hibernate.hbm2ddl.jdbc_metadata_extraction_strategy в individually

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