我有以下模式/实体:
@Entity
@DiscriminatorColumn(name="type")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public class Insurance extends Generic<Insurance> {
@OneToOne public myInsurance.models.liability.hivAndVHProtection.Hiv_Answer hivAndVHProtectionAnswer;
}
@MappedSuperclass
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Answer extends Generic<Answer> {}
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorValue("A")
public class Hiv_Answer extends Answer {
@OneToOne public HivAndVHProtection_Variant variant;
}
@Entity
@Inheritance
@DiscriminatorValue("E")
public class Hiv_AnswerForEntities extends Hiv_Answer {
public int proffesionGroup;
public int personCount;
public int contributionPerPerson;
@Transient public int totalContribution;
}我想在db中有两个表:Insurance和Hiv_Answer
我希望这些实体:Hiv_Answer和Hiv_AnswerForEntities保持在表Hiv_Answer (共享公共ID池)中。
我想要表Insurance与表Hiv_Answer f.e的关系。列中Hiv_Answer_id
我尝试了很多结合注释的方法。没有人能像它那样工作。
对我来说,当前的配置似乎还不错,但事实并非如此。我得到了额外的表:Hiv_AnswerForEntities,而且我与Hiv_Answer表完全没有关系。
似乎使用strategy=InheritanceType.SINGLE_TABLE来自Hiv_Answer实体,它使用来自超类Answer的strategy=InheritanceType.TABLE_PER_CLASS。
我找不到我的错误。
请帮我解决这个问题。
发布于 2015-06-03 14:52:08
在JPA中,不能在继承树中重新定义继承策略,继承的根定义为整个继承树设置继承策略。
https://stackoverflow.com/questions/30621492
复制相似问题