Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当为@Id使用继承的表生成器时,DataNucleus(JPA)是否支持每个实体的序列?_Java_Jpa_Datanucleus - Fatal编程技术网

Java 当为@Id使用继承的表生成器时,DataNucleus(JPA)是否支持每个实体的序列?

Java 当为@Id使用继承的表生成器时,DataNucleus(JPA)是否支持每个实体的序列?,java,jpa,datanucleus,Java,Jpa,Datanucleus,基本上,我想要一个@MappedSuperclass,它为所有扩展实体定义代理id生成: @MappedSuperclass public class BaseEntity { @Id @GeneratedValue(strategy = GenerationType.TABLE) private Long id; ... } 如果我有3种类型的具体实体,EntityA、EntityB和EntityC,我希望看到如下所示的SEQUENCE_表: SEQUENC

基本上,我想要一个@MappedSuperclass,它为所有扩展实体定义代理id生成:

@MappedSuperclass
public class BaseEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    private Long id;

    ...
}
如果我有3种类型的具体实体,EntityA、EntityB和EntityC,我希望看到如下所示的SEQUENCE_表:

SEQUENCE_NAME  |  NEXT_VAL
--------------------------
EntityA           11
EntityB           31
EntityC           101
…每个序列都是独立的,仅用于其相应的实体。使用DataNucleus很容易做到这一点吗?理想情况下,我希望避免为每个@实体声明一个@TableGenerator。Hibernate使用“preference\u sequence\u per\u entity”属性提供此行为,但我更喜欢DataNucleus的一些其他功能。

简短回答:否


更复杂的回答是:不,但如果有人需要,他们可以贡献这样的东西。这就是说,它是一个少数人兴趣的特性,并且有明显的缺点,因为在很多情况下它不能被使用,特别是在与BaseEntity有关系的地方,为BaseEntity选择了什么继承,以及需要能够确定相关的对象

是的,我认为每个实体类的序列可能并不总是合理的,但是当应用程序中几乎每个实体都有一个公共的
@MappedSuperclass
时,最好将类型检测推迟到类层次结构中的至少一个级别(可能是针对基表)。无论如何,我很欣赏这个响应,对于大多数应用程序来说,一个长序列可能就足够了。