Сбой проверки схемы Hibernate для синонимов таблицы Oracle

Я разрабатываю веб-приложение Java, которое использует Hibernate (на основе аннотаций) для сохранения объектов в базе данных Oracle 11g. Администратор баз данных создал синонимы для таблиц и попросил меня использовать эти синонимы вместо физических таблиц. (Например: таблица «Foo» имеет синоним «S_Foo»)

Если у меня включен «hibernate.hbm2ddl.auto=validate», то при запуске приложения происходит сбой с «Отсутствует таблица: S_Foo». Если я отключу проверку, то приложение запускается нормально и работает правильно. Я предполагаю, что Hibernate проверяет только физические таблицы, а не синонимы при проверке существования таблицы.

Есть ли способ включить проверку схемы Hibernate с синонимами? Можно ли указать в аннотации и физическую таблицу, и синоним? Я предпочитаю иметь дополнительную проверку безопасности, чтобы структура таблицы была правильной при запуске приложения.


person Rob    schedule 11.06.2010    source источник
comment
Можете ли вы опубликовать полную трассировку стека, а также указать версии Hibernate, драйвера jdbc и диалекта.   -  person Pascal Thivent    schedule 11.06.2010
comment
Были ли синонимы созданы как ПУБЛИЧНЫЕ синонимы или синонимы, принадлежащие пользователю, под которым Hibernate входит в систему? Это может повлиять на результат. (а может и нет)   -  person Jeffrey Kemp    schedule 12.06.2012


Ответы (2)


Я не знаком с спящим режимом, но не могли бы вы попробовать представления вместо синонимов. Если вы просто используете эти таблицы для представлений, это будет работать так же, как синоним. Если вы хотите иметь возможность выполнять CRUD на «столе», вам нужно будет создать кучу триггеров вместо триггеров.

person Matthew Watson    schedule 14.06.2010

Измените hibernate.hbm2ddl.auto=validate на hibernate.hbm2ddl.auto значение = "", тогда это не сработает.

person Pedro    schedule 28.12.2010