2012-02-02 35 views
0

我有一個抽象類A,許多其他類繼承它。
在我們的數據庫(Oracle)的,這些類每類表映射,並繼承由FK子表實現的(FK孩子的PK引用的PK)。
到目前爲止這麼好。相當標準。如何映射JPA中的繼承與更多的序列?

現在,我們如何生成PK?有一系列的過程......但我們的DBA決定,當在繼承A的特定表B中創建行時,PK將從不同的序列(B的序列)中生成。

我的問題 - 如何在JPA中映射它?我希望類B繼承類A,但是當它實例化時,我希望它的ID(這是A的ID)使用不同的序列生成。

回答

0

JPA並沒有提供一種覆蓋在子類中的序列發生器。

你可以做超一@MappedSuperclass,並在其中沒有定義ID,那麼你可以在子類中不同的定義。

如果使用的EclipseLink,您可以定義在子類DescriptorCustomizer(@Customizer),並設置sequenceName上描述的其他序列。

+0

這不起作用,因爲JPA不會在A表中創建一行(因爲它不是實體)。而且我使用的是Kodo,所以EclipseLink功能對我無關緊要:( – wafwaf 2012-02-06 14:46:51