sql >> Database teknologi >  >> RDS >> Oracle

Dvale Oracle Tablespace-annotering

Nej, der er ingen måde at gøre det ud af boksen. Jeg har tidligere omgået det ved at bruge følgende - ret involverede - tilgang:

  1. Opret din egen annotation, @TableSpec der har tablespace og andre nødvendige attributter.
  2. Udvid org.hibernate.cfg.Configuration og tilsidesæt getTableMappings() for at returnere dekoreret Table objekter (se nedenfor).
  3. Udvid org.hibernate.mapping.Table og tilsidesæt sqlCreateString() og / eller sqlAlterStrings() for at tilføje tablespace-specifikation (og yderligere indstillinger, hvis nogen).
  4. I stedet for at bruge hbm2ddl-værktøjet (eller myre-opgave), skriv din egen, som vil oprette din Configuration objekt, behandle alle dine klassefiler ved at indsamle og fortolke din @TableSpec annoteringer og påkald Configuration.generateSchemaCreationScript() eller generateSchemaUpdateScript() for at generere faktisk DDL.

Som sagt, temmelig involveret :-) Som et alternativ, hvis ALLE dine tilknyttede tabeller bruger det samme tablespace, kan du udvide Oracle-dialekten, du bruger, og tilsidesætte getTableTypeString() for at returnere din tablespace spec. Selvom dette er et grimt hack (fordi tableTypeStrings oprindelige formål er at levere MySQL-motortype), virker det og er bestemt meget hurtigere og nemmere end ovenstående tilgang.




  1. Optimering af MySQL-forespørgsler med tunge joinforbindelser

  2. Zip ved hjælp af Oracle Stored Procedure

  3. Almindelige Postgres-opgaver på CentOS 7

  4. Streng til dato i Oracle med millisekunder