0

JPAまたはHibernateアノテーションを介して、特定のインデックスが範囲対応のインデックス作成方法(btreeなど)を使用するように指定することは可能ですか?もしそうなら、どのように?

4

1 に答える 1

3
  • JPAでは主キー(@Id)と一意の制約(@UniqueConstraint)をモデル化できますが、インデックスを明示的にモデル化することはできません。JPA標準には、インデックス範囲やbtreeなどでモデル化/ヒントを与える機能は確かにありません。JPA2.0 仕様

  • Hibernateは@Indexを介したインデックスモデリングをサポートします。次に例を示します。

    @Entity
    @ org.hibernate.annotations.Table(name = "Forest"、indexes = {@Index(name = "idx"、columnNames = {"name"、 "length"})})
    public class Forest {.. .. }

    または、単一列インデックスの場合:

    パブリッククラスツリー{

      @Index(name="story1index")
      public String getLeaf() {
         return leaf;
      }
    

    }

    「ranged-index」、btreeなどを指定することはできません... Hibernate Annotations 3.5

    hibernateがDBスキーマを生成すると、インデックスが作成されます。
    ただし、妥当なQAが適用されている環境では、DBスキーマは通常、休止状態の自動スキーマ生成ではなく、DBAによって個別に作成および保守されます。これは、DBAがすべての物理属性を必要に応じて正確に定義できるため、はるかに優れた方法です。Qで要求する物理属性のタイプと同じです;-)。次に、HibernateはDBAの強力に制御されたバージョンのスキーマと連携します。

  • インデックスがHibernate/JPAによってモデル化されているかどうかに関係なく、DBスクリプトを実行するだけで、インデックスが作成されます。(または、Hibernate / JPAで生成されたスクリプトにテキスト編集を適用できます)

  • Oracle DBの場合、デフォルトのインデックスタイプはすでにBツリーです。MySQLの場合、デフォルトのインデックスタイプはB-Treeです。ただし、デフォルトがHASHであるメモリ内ストレージエンジンの場合を除きますが、インデックス作成スクリプトでB-Treeを指定するのは簡単です。MySQL5-インデックスの作成

于 2012-11-05T07:47:07.410 に答える