我遇到了继承和索引名称生成的问题。例如: 多个抽象类,彼此继承。
@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
我已经尝试了多种hibernate命名策略,并且自己也覆盖了这些方法,但到目前为止还没有任何工作。
我正在使用JBoss 7.1.1附带的hibernate版本。
自动生成的主键索引没问题。
我接下来可以做些什么?
答案 0 :(得分:0)
您是否尝试使用@Table和@Index注释手动设置索引名称?
@Table(appliesTo="tableName", indexes = { @Index(name="index1", columnNames={"column1", "column2"} ) } )