Não, não há como fazer isso fora da caixa. Eu contornei isso no passado usando a seguinte abordagem - bastante envolvida:
- Crie sua própria anotação,
@TableSpecque tem tablespace e outros atributos necessários. - Estender
org.hibernate.cfg.Configuratione substituirgetTableMappings()para retornarTabledecorada objetos (veja abaixo). - Estender
org.hibernate.mapping.Tablee substituirsqlCreateString()e/ousqlAlterStrings()para anexar a especificação do tablespace (e configurações adicionais, se houver). - Em vez de usar a ferramenta hbm2ddl (ou tarefa ant), escreva sua própria que criará sua
Configurationobjeto, processe todos os seus arquivos de classe coletando e interpretando seu@TableSpecanotações e invoqueConfiguration.generateSchemaCreationScript()ougenerateSchemaUpdateScript()para gerar DDL real.
Como eu disse, bastante envolvido :-) Como alternativa, se TODAS as suas tabelas mapeadas usarem o mesmo tablespace, você poderá estender o dialeto Oracle que está usando e substituir
getTableTypeString() para retornar sua especificação de tablespace. Embora este seja um hack feio (porque o objetivo original do tableTypeString é fornecer o tipo de mecanismo MySQL), ele funciona e certamente é muito mais rápido e fácil do que a abordagem acima.