2011-11-29 85 views
3

是否有可能继承jpa2.0实体中的基类的序列生成器?这样做的目的是让所有实体的id属性在一个公共基类中,并且每个实体只需要定义它自己的序列的名称。在JPA实体的基类中定义序列生成器?

这就是我想要的:基类:

public abstract class BaseClass { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "mySeqGenerator") 
    Long id; 
} 

和实施

@Entity 
@SequenceGenerator(name = "mySeqGenerator", sequenceName = "the_seq") 
public class MyEntity extends BaseClass { 
    [..] 
} 

我使用Hibernate和是“HHH000138撤消此:混合继承策略在实体层级是不允许的,忽略MyEntity中的子策略“

+0

我是否正确理解你:你是否想为子类生成ID,尽管为超类生成了ID?但为什么? ;-) –

+0

附注 - 任何非实体或非映射超类的注释都将被JPA提供者忽略。 –

回答

0

所有生成器都是全局持久单元 despi如何定义它们(在课堂级别,现场级别的注释或orm.xml)。

因此,您不需要“继承”或“分享”任何东西 - 您可以使用它。

+0

嗯,我认为你是对的,我的内涵似乎很无聊=)我必须为每个序列创建一个生成器。 – martin

+0

如果这能够以任何方式帮助您,您还可以重复使用许多实体的相同序列。 –