Hibernateを使用するエンティティとしてモデル化された2つのテーブルAとBを持つシンプルなデータベーススキーマがあります。 Bの各行には、Aの行を一意に識別する外部キーがあります。Hibernateで外部キーのインデックスを有効または無効にする
私は、Postgresをデータベースとして使用すると、デフォルトで外部キー用のインデックスは作成されないことに気付きました。私はたくさんの行と削除カスケードを設定しているので、JPA @Indexアノテーションを使うようにHibernateエンティティを設定することにしました。うまくいき、インデックスが作成されているのがわかります。
しかし、何らかの理由で私は別のデータベースバックエンド:HSQLDBに切り替える必要がありました。インデックスを作成するためのJPAアノテーションは考慮されていますが、HSQLDBはデフォルトですべての外部キーのインデックスを作成するので、最終的に同じカラムに対して2つのインデックスがあります。
外部キーのインデックスの作成がデータベースプロバイダ固有であることを読んでいます(たとえば、OracleとPostgresはインデックスを作成しませんが、MySQLとHSQLDBはそうします)。
プロバイダが何であれ、外部キーのインデックスの作成を有効/無効にする方法があるのでしょうか?それ以外の場合は、二重インデックスに対処する必要があるようです。
どんなアイデア、コメント、提案も大歓迎です。
ありがとうございます。それは私の問題です。少なくとも同じカラムの2つのインデックスを避けるために、Hibernateレベルでそれを設定する方法があるのだろうかと思います。残念ながら、_lumue_答えに基づいて、それは不可能であるように見えます。 – Laurent