层次结构中的JPA Eclipselink TableGenerator - 每个类一个生成器

时间:2015-09-07 20:50:13

标签: eclipselink hierarchy

我正在使用EclipseLink 2.6.1-RC1,我有一个类层次结构,将在下面说明:

@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。

有任何帮助吗?感谢!!!

1 个答案:

答案 0 :(得分:0)

好吧,在继续搜索之后,我发现其他问题类似于我的,但没有答案,我发现2013年eclipselink中的一个错误,这个功能没有发布版本的更多信息。 但是,在this answer中,告诉我们可以使用“Customizer”来改变JPA描述符的几个部分,因此,我改变了该形式的序列名称,并且它的工作完美!

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

    }
}