Nej, det finns inget sätt att göra det ur lådan. Jag har kommit runt det tidigare med följande - ganska involverade - tillvägagångssätt:
- Skapa din egen kommentar,
@TableSpecsom har tabellutrymme och andra nödvändiga attribut. - Utöka
org.hibernate.cfg.Configurationoch åsidosättgetTableMappings()för att returnera dekoreratTableobjekt (se nedan). - Utöka
org.hibernate.mapping.Tableoch åsidosättsqlCreateString()och / ellersqlAlterStrings()för att lägga till tabellutrymmesspecifikation (och ytterligare inställningar om några). - Istället för att använda hbm2ddl-verktyget (eller myruppgift) skriv din egen som skapar din
Configurationobjekt, bearbeta alla dina klassfiler och samla in och tolka din@TableSpecanteckningar och anropaConfiguration.generateSchemaCreationScript()ellergenerateSchemaUpdateScript()för att generera faktisk DDL.
Som jag sa, ganska involverad :-) Som ett alternativ, om ALLA dina mappade tabeller använder samma tabellutrymme, kan du utöka Oracle-dialekten du använder och åsidosätta getTableTypeString() för att returnera din tablespace spec. Även om detta är ett fult hack (eftersom tableTypeStrings ursprungliga syfte är att tillhandahålla MySQL-motortyp), fungerar det och är säkerligen mycket snabbare och enklare än ovanstående tillvägagångssätt.