2015-09-07 32 views
0

一個發電機,我用的EclipseLink 2.6.1-RC1的工作,我有一個類層次結構將在下面舉例說明:JPA的EclipseLink TableGenerator在層次結構 - 每

@MappedSuperclass 
public abstract class AbstractEntity implements Serializable { 
    @Id 
    @GeneratedValue(strategy = GenerationType.TABLE) 
    private Long id; 
    .... irrelevant code .... 
} 
@Entity 
public class Coupon extends AbstractEntity { 
---- irrelevant ... 
} 
@Entity 
public class Sector extends AbstractEntity { 
.... irrelevant ... 
} 

我需要使用TableGenerator的ID生成目的。但我需要的是,「序列」表中的每個子類都有一個記錄。我已經在不同的地方搜索,但沒有。我知道,如果我在每個孩子班上都分配了「id」字段的聲明,但是我有兩個孩子jaja的moooore。

任何幫助?謝謝!!!

回答

0

好了,繼續尋找後,我發現其他的問題,同類者礦井,但沒有答案,我發現在2013年到期本funtionality的EclipseLink的錯誤沒有的發行版本的更多信息。 但是,在this answer,告訴我們可以用「定製」,以改變JPA描述的幾件事情,所以,我在形式改變序列名,其作品完美!

public class SequenceCustomizer implements DescriptorCustomizer { 
    @Override 
    public void customize(ClassDescriptor descriptor) throws Exception { 
     descriptor.setSequenceNumberName(descriptor.getTableName()); 

    } 
}