Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hibernate Oracle Tablespace Annotation

Không, không có cách nào để làm điều đó ra khỏi hộp. Trước đây tôi đã tìm hiểu về nó bằng cách sử dụng cách tiếp cận sau - thay vì liên quan -:

  1. Tạo chú thích của riêng bạn, @TableSpec có không gian bảng và các thuộc tính cần thiết khác.
  2. Mở rộng org.hibernate.cfg.Configuration và ghi đè getTableMappings() để trả lại Table được trang trí đối tượng (xem bên dưới).
  3. Mở rộng org.hibernate.mapping.Table và ghi đè sqlCreateString() và / hoặc sqlAlterStrings() để thêm thông số kỹ thuật vùng bảng (và các cài đặt bổ sung nếu có).
  4. Thay vì sử dụng công cụ hbm2ddl (hoặc tác vụ kiến), hãy viết công cụ của riêng bạn để tạo Configuration của bạn đối tượng, xử lý tất cả các tệp lớp thu thập và diễn giải @TableSpec của bạn chú thích và gọi Configuration.generateSchemaCreationScript() hoặc generateSchemaUpdateScript() để tạo DDL thực tế.

Như tôi đã nói, khá liên quan :-) Như một sự thay thế, nếu TẤT CẢ các bảng được ánh xạ của bạn sử dụng cùng một vùng bảng, bạn có thể mở rộng phương ngữ Oracle mà bạn đang sử dụng và ghi đè getTableTypeString() để trả về thông số không gian bảng của bạn. Mặc dù đây là một vụ hack xấu xí (vì mục đích ban đầu của tableTypeString là cung cấp loại động cơ MySQL), nhưng nó hoạt động và chắc chắn nhanh hơn và dễ dàng hơn rất nhiều so với cách tiếp cận trên.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy xuất danh sách các thủ tục / chức năng riêng tư từ một phần thân gói

  2. Oracle Data Access FileNotFound:Oracle.DataAccess.Common.Configuration.Section.xsd

  3. Xóa bảng khỏi cơ sở dữ liệu Oracle 10g

  4. Làm cách nào để khôi phục các thay đổi DB của tôi sau khi cam kết?

  5. sự cố trong Tạo số trong Trình tự sử dụng Cache