Вам необходимо выполнить 3 шага -
1) В hibernate.cfg.xml
добавьте это свойство
hibernate.default_catalog = MyDatabaseName
(как указано в вышеприведенной записи)
2) В hibernate.reveng. xml
, добавьте все фильтры таблицы, подобные этому
table-filter match-name="MyTableName"
(только это, здесь нет названия каталога)
3) Регенерируйте код спячки
Вы не увидите названия каталога ни в одном из файлов *.hbm.xml
.
Я использовал Eclipse Galileo и Hibernate-3.2.4.GA.
.В генерации есть настройка, которая сообщает, какие таблицы помещать в какой каталог.
Вы можете указать каталог вручную (в файле Reveng, <таблица>
), или программно (в вашем пользовательском классе ReverseEngineeringStrategy, если я хорошо помню).
Кроме того, мне недавно пришлось изменить шаблоны генерации.
См. Справочную документацию:
Извините, можно было бы уточнить, но у меня сейчас нет доступа к моему рабочему компьютеру.
Атрибут catalog является атрибутом "соединения" и должен быть указан в конфигурационном файле "соединения" hibernate.cfg.xml
и НЕ в конфигурационном файле "данных" *.hbm.xml
.
Я генерирую код hibernate через задачу ant
и ставлю эту задачу replace после регенерации (заменить schema-name на вашу базу данных).
<replace dir='../src' token='catalog="schema-name"' value=''>
Таким образом, после генерации каталог атрибутов был удален.
Это обходной путь, но сгенерированный код работает в моей среде разработки и в производственной среде с другим schema-name.