Не, няма начин да го направите веднага. Заобикалял съм го в миналото, използвайки следния - доста ангажиран - подход:
- Създайте своя собствена анотация,
@TableSpecкойто има таблично пространство и други необходими атрибути. - Разширете
org.hibernate.cfg.Configurationи замениgetTableMappings()за връщане на декориранаTableобекти (виж по-долу). - Разширете
org.hibernate.mapping.Tableи замениsqlCreateString()и / илиsqlAlterStrings()за добавяне на спецификация за таблично пространство (и допълнителни настройки, ако има такива). - Вместо да използвате инструмента hbm2ddl (или ant задача), напишете своя собствена, която ще създаде вашата
Configurationобект, обработва всичките ви клас файлове, събирайки и интерпретирайки вашия@TableSpecанотации и извикване наConfiguration.generateSchemaCreationScript()илиgenerateSchemaUpdateScript()за генериране на действителен DDL.
Както казах, по-скоро ангажирано :-) Като алтернатива, ако ВСИЧКИ ваши нанесени таблици използват едно и също таблично пространство, можете да разширите диалекта на Oracle, който използвате, и да замените getTableTypeString() за да върнете вашата спецификация за таблично пространство. Въпреки че това е грозен хак (тъй като първоначалната цел на tableTypeString е да предостави тип на MySQL машина), той работи и със сигурност е много по-бърз и лесен от горния подход.