0

我有一个类Problem,然后是各种其他类,它们扩展了基类,Solution例如,许多其他解决方案子类。该类将是各种解决方案类的“外键”,尽管该类不需要解决方案列表。BasicSolutionExpertSolutionProblemProblem

所以我想要Problem各种解决方案表中的表外键(每个解决方案子类一个表)。我如何通过 Hibernate 实现它?

我知道从 Hibernate 的角度来看,这不是正确的数据库设计,但它是一个遗留系统,无法调整。我知道一对多的实体关联,但这需要一些解决方案列表才能出现在问题类中(我不想要)。

你能建议这个问题的一些答案吗?

4

1 回答 1

1

您需要将 Solution 基类中的关系与 @ManyToOne 关联进行映射:

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public abstract class Solution {
...
    private Problem _problem;

    @ManyToOne
    @JoinColumn(name="PROBLEM_ID")
    public Problem getProblem() {
        return _problem;
    }
...
}

所有解决方案子类都与问题有关。

您也可以使用@OneToOne 代替@ManyToOne,不同之处在于@ManyToOne 必须在关系的这一侧具有外键。

于 2012-04-12T07:22:10.487 回答