Oracle
 sql >> база данни >  >> RDS >> Oracle

Хибернация на Oracle Tablespace Анотация

Не, няма начин да го направите веднага. Заобикалял съм го в миналото, използвайки следния - доста ангажиран - подход:

  1. Създайте своя собствена анотация, @TableSpec който има таблично пространство и други необходими атрибути.
  2. Разширете org.hibernate.cfg.Configuration и замени getTableMappings() за връщане на декорирана Table обекти (виж по-долу).
  3. Разширете org.hibernate.mapping.Table и замени sqlCreateString() и / или sqlAlterStrings() за добавяне на спецификация за таблично пространство (и допълнителни настройки, ако има такива).
  4. Вместо да използвате инструмента hbm2ddl (или ant задача), напишете своя собствена, която ще създаде вашата Configuration обект, обработва всичките ви клас файлове, събирайки и интерпретирайки вашия @TableSpec анотации и извикване на Configuration.generateSchemaCreationScript() или generateSchemaUpdateScript() за генериране на действителен DDL.

Както казах, по-скоро ангажирано :-) Като алтернатива, ако ВСИЧКИ ваши нанесени таблици използват едно и също таблично пространство, можете да разширите диалекта на Oracle, който използвате, и да замените getTableTypeString() за да върнете вашата спецификация за таблично пространство. Въпреки че това е грозен хак (тъй като първоначалната цел на tableTypeString е да предостави тип на MySQL машина), той работи и със сигурност е много по-бърз и лесен от горния подход.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-24247:достъпът до мрежата е отказан от списъка за контрол на достъпа (ACL) при изпращане на имейл оракул

  2. Преобразувайте данните от колоната за разлика TIMESTAMP във формат на низ

  3. Създаване на CTE в Oracle

  4. Sql заявка на rownum

  5. По-бърз начин за зареждане на огромна таблица за съхранение на данни