没有id的JPA / Hibernate继承

时间:2015-07-24 03:53:36

标签: java hibernate jpa inheritance

是否可以在没有id的情况下在JPA / Hibernate中进行继承?
我的用例:

我有多个实体,我希望每次更改时都会记录时间戳。所以我创建了AbstractResource并希望每个派生类都继承属性和逻辑(以避免在每个类中反复编写相同的东西)。

我的问题是hibernate想要一个ID到实体,我不关心id,因为我唯一关心的是附加属性。每个实体都可以拥有它想要的任何id(String,int,long,不同的名称等)。

我尝试使用Embeddable,但看起来hibernate不支持Embeddable的继承。你有任何想法,我的任务如何实现?

我的父类来自“审核”实体:

@Embeddable
@EntityListeners(AbstractResourceListener.class)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class AbstractResource {
    private long modifyTimestamp;

    @Column(name = "_MODIFY_TIMESTAMP", nullable = true)
    public long getModifyTimestamp() {
    return modifyTimestamp;
    }

    public void setModifyTimestamp(long modifyTimestamp) {
    this.modifyTimestamp = modifyTimestamp;
    }
}

1 个答案:

答案 0 :(得分:2)

@MappedSuperclass是可以在审计中扩展和使用的超类的注释。请参阅example