sql >> データベース >  >> RDS >> Oracle

HibernateOracleテーブルスペースアノテーション

    いいえ、箱から出してそれを行う方法はありません。私は過去に、次の-かなり複雑な-アプローチを使用してそれを回避しました:

    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. MySQLがMacOSXのどこにインストールされているかを調べます

    2. PHPループまたはMySQLを使用した不良データベースの再構築

    3. php/mysqlのアラビア語のテキストが「???」と表示されることがあります選択/挿入ステートメントの後にÙؤتاが表示されることがあります

    4. IDと最新の日時によるMySQLグループ