两个相关JPA实体之间的接口

时间:2012-03-09 12:47:31

标签: java hibernate jpa

这是以下问题的扩展

Interface between two related JPA entities

我有完全相同的情况,但还有一个补充。

要将它放入#OpenSource所述的相同示例中,传真和电子邮件表已经从“Source”通过InheritanceType扩展为“Joined”,这是许多其他类的另一个基类。现在,在您的示例中,您已使传真和电子邮件从Channel扩展,该Channel使用InheritanceType指定为TABLE_PER_CLASS。

我认为我也不能在我的情况下实现相同的方法(指定TABLE_PER_CLASS)。请帮助我克服这种情况。

1 个答案:

答案 0 :(得分:0)

这是使用ManyToAny映射而不是ManyToOne或OneToOne

@Entity
public class Delivery {
    @Id
    @GeneratedValue
    private Long id;

    @Any(metaColumn = @Column(name = "type"))
    @AnyMetaDef(idType = "long", metaType = "string", 
            metaValues = { 
             @MetaValue(targetEntity = Fax.class, value = "fax"),
             @MetaValue(targetEntity = Email.class, value = "email"),
       })
    @JoinColumn(name="channelId")
    private Channel channel;
}