我正在使用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。
有任何帮助吗?感谢!!!
答案 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());
}
}