Hibernate - 持久的多态连接

时间:2010-05-28 12:28:00

标签: java hibernate

我试图了解如何在hibernate中最好地实现多态一对多。

例如:

@MappedSuperclass
public class BaseEntity  {
    Integer id;
    // etc...
}

@Entity
public class Author extends BaseEntity {}

@Entity
public class Post extends BaseEntity {}

@Entity
public class Comment extends BaseEntity {}

现在,我还希望通过以下课程保留审核信息:

@Entity
public class AuditEvent {
    @ManyToOne // ?
    BaseEntity entity;
}

auditEvent.entity的适当映射是什么?另外,Hibernate将如何实际坚持这一点?是否会生成一系列连接表(AuditEvent_AuthorAuditEvent_PostAuditEvent_Comment),还是有更好的方式?

注意,我宁愿不让我的其他实体类公开连接的另一面(例如List<AuditEvent> events上的BaseEntity) - 但如果这是最干净的实现方式,那么它就够了。

1 个答案:

答案 0 :(得分:5)

映射的超类不是实体,因此不能成为关联的一部分(在EJB-199中提醒)。所以: