Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Hibernate Oracle Tablespace Anotasi

Tidak, tidak ada cara untuk melakukannya di luar kotak. Saya telah mengatasinya di masa lalu menggunakan pendekatan berikut - agak terlibat -:

  1. Buat anotasi Anda sendiri, @TableSpec yang memiliki tablespace dan atribut lain yang diperlukan.
  2. Perpanjang org.hibernate.cfg.Configuration dan ganti getTableMappings() untuk mengembalikan Table decorated yang dihias objek (lihat di bawah).
  3. Perpanjang org.hibernate.mapping.Table dan ganti sqlCreateString() dan / atau sqlAlterStrings() untuk menambahkan spesifikasi tablespace (dan pengaturan tambahan jika ada).
  4. Alih-alih menggunakan alat hbm2ddl (atau tugas semut) tulis sendiri yang akan membuat Configuration Anda objek, proses semua file kelas Anda mengumpulkan dan menafsirkan @TableSpec . Anda anotasi dan aktifkan Configuration.generateSchemaCreationScript() atau generateSchemaUpdateScript() untuk menghasilkan DDL yang sebenarnya.

Seperti yang saya katakan, agak terlibat :-) Sebagai alternatif, jika SEMUA tabel yang dipetakan menggunakan tablespace yang sama, Anda dapat memperluas dialek Oracle yang Anda gunakan dan mengganti getTableTypeString() untuk mengembalikan spesifikasi tablespace Anda. Meskipun ini adalah peretasan yang buruk (karena tujuan awal tableTypeString adalah untuk menyediakan tipe mesin MySQL), ini bekerja dan tentu saja jauh lebih cepat dan lebih mudah daripada pendekatan di atas.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Daftar Semua Fungsi di Oracle Database

  2. Hibernasi kueri sql berparameter, sesi Oracle lambat dan aktif

  3. Cara Mengambil Data dari Kursor di Oracle Menggunakan For Loop

  4. Tidak dapat melihat Penyedia Data Oracle untuk .NET di Visual Studio 2012 RC

  5. Bagaimana Cara Mendeklarasikan Parameter Input-Output Dalam Prosedur/Fungsi Tersimpan SQL Server?