继承策略当某些实体没有任何特定的列或表时

时间:2014-08-19 16:25:03

标签: sql hibernate jpa-2.0

在数据库中,我们有一个带有鉴别器列的“父”表,并且根据此鉴别器列,某些列存储在特定表中,或者允许某些关系(许多/一对多)。

在我们的映射中,我们希望像

一样实现它
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class A {
    @Id
    @Column
    private int id;
}

@Entity
public class B extends A {
    @Column
    private String specificField;
}

@Entity
public class C extends A {
    @OneToMany
    private List<OtherEntity> otherEntities;
}

不幸的是,Hibernate希望加入表C,这个表不存在,因为它只包含FK到A.有没有办法保留这个策略但是告诉不需要加入?

否则,什么是最干净的解决方案?在this question之后,我想在SINGLE_TABLE注释中使用@SecondaryTable注释对需要它的子实体进行配置,但配置似乎更重(必须为每个列声明源表)。

0 个答案:

没有答案