Ne, neexistuje způsob, jak to udělat hned po vybalení. V minulosti jsem to obešel pomocí následujícího – spíše zapojeného – přístupu:
- Vytvořte si vlastní anotaci,
@TableSpeckterý má tabulkový prostor a další nezbytné atributy. - Rozšiřte
org.hibernate.cfg.Configurationa přepsatgetTableMappings()vrátit zdobenouTableobjektů (viz níže). - Rozšiřte
org.hibernate.mapping.Tablea přepištesqlCreateString()a / nebosqlAlterStrings()pro připojení specifikace tabulkového prostoru (a případných dalších nastavení). - Namísto použití nástroje hbm2ddl (nebo úkolu ant) si napište vlastní, který vytvoří vaši
Configurationobjekt, zpracujte všechny soubory vaší třídy shromažďováním a interpretací vašeho@TableSpecanotace a vyvolejteConfiguration.generateSchemaCreationScript()nebogenerateSchemaUpdateScript()vygenerovat skutečné DDL.
Jak jsem řekl, spíše zapojen :-) Alternativně, pokud VŠECHNY vaše namapované tabulky používají stejný tabulkový prostor, můžete rozšířit dialekt Oracle, který používáte, a přepsat getTableTypeString() vrátit specifikaci tabulkového prostoru. I když se jedná o ošklivý hack (protože původním účelem tableTypeString je poskytovat typ enginu MySQL), funguje a je rozhodně mnohem rychlejší a jednodušší než výše uvedený přístup.