【发布时间】:2015-05-31 10:01:31
【问题描述】:
我遇到了一个情况。下面定义了父级和从父级派生的子级。由于父级有@Table 注释,我可以定义索引。但是由于 child 中没有 @Table 注释,我如何为该子列定义索引。我认为使用@SecondaryTable 注释但我认为@InheritanceType.SINGLE_TABLE 没有用,因为将创建另一个子表。如果我在某处错了,请纠正。另外,如果有任何子索引问题的解决方案。
@Table(name = "Parent", indexes = {@Index(name = "IDX_USERNAME", columnList = "username")})
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="TYPE")
@Entity
public class Parent{
}
@Entity
@DiscriminatorValue("C")
public class Child extends Parent{
}
【问题讨论】:
-
你在Parent类的Table注解中定义索引。有一个表,这就是它的定义位置。
-
感谢您的回答,但我无法在子类上定义索引。只是好奇,因为它有助于代码理解并且看起来更干净
-
不,我认为这不可能。一个更好的主意是使用 FlywayDB 或 Liquibae 来定义您的架构。
-
再次感谢您的回答
标签: java hibernate jpa indexing hibernate-mapping