2012-03-09 2 views
0

Это является продолжением на следующий вопросИнтерфейс между двумя родственными лицами JPA

Interface between two related JPA entities

У меня точно такой же сценарий, но с еще одним дополнением.

Чтобы разместить его в том же примере, который указан в #OpenSource, таблицы факсов электронной почты, которые уже распространяются от «Source» через InheritanceType как «Регистрация», который является другим базовым классом для многих других классов. Теперь, как в вашем примере, вы сделали факс и электронную почту для расширения от канала, который указан с InheritanceType как TABLE_PER_CLASS.

Я не думаю, что могу реализовать тот же подход (с указанием TABLE_PER_CLASS) в моем случае. Пожалуйста, помогите мне преодолеть эту ситуацию.

ответ

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; 
}