如何使用多个序列映射JPA中的继承?

时间:2012-02-02 13:14:51

标签: inheritance jpa sequence

我有一个抽象类A,许多其他类继承它 在我们的数据库(Oracle)中,这些类由每个类的表映射,并且继承由子表中的FK实现(子项的PK引用A的PK上的FK)。 到现在为止还挺好。很标准。

现在,我们如何生成PK?当然有一系列...但我们的DBA决定在继承A的特定表B中创建行时,PK将从不同的序列(B的序列)生成。

我的问题 - 如何在JPA中映射?我希望B类继承A类,但是当它被实例化时,我想要使用不同的序列生成它的ID(即A的ID)。

1 个答案:

答案 0 :(得分:0)

JPA没有提供覆盖子类中序列生成器的方法。

您可以将超类设为@MappedSuperclass,而不是在其中定义id,然后您可以在子类中以不同方式定义它。

如果使用EclipseLink,您可以在子类上定义DescriptorCustomizer(@Customizer),并将描述符上的sequenceName设置为另一个序列。