1

継承とインデックス名の生成に問題があります。例: 相互に継承される複数の抽象クラス。

@Entity
public abstract class LongClassName1 implements Serializable { 
... 
    @Index(name = "externalIdIndex")
    String externalId;
...
}

@Entity
public abstract class LongClassName2 extends LongClassName1 { ... }

@Entity
public abstract class LongClassName3 extends LongClassName2 { ... }

@Entity
public abstract class LongClassName4 extends LongClassName3 { ... }

@Entity
public class LongClassName5 { ... }

Hibernate は次のようLongClassName5LongClassName4LongClassname3LongClassname2externalIdIndex なエラー メッセージにつながるようなインデックスを生成します。Identifier name 'LongClassName5LongClassName4LongClassname3LongClassname2externalIdIndex' is too long

複数の休止状態の命名戦略を試し、メソッドを自分で上書きしましたが、これまでのところ何も機能していません。

JBoss 7.1.1 に同梱されている休止状態バージョンを使用しています。

主キーの自動生成されたインデックスは問題ありません。

次にできることはありますか?

4

1 に答える 1

0

@Table および @Index アノテーションを使用して手動でインデックス名を確立しようとしましたか?

@Table(appliesTo="tableName", indexes = { @Index(name="index1", columnNames={"column1", "column2"} ) } )
于 2012-09-07T09:39:36.057 に答える