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 回答