2012-04-12 111 views
0

外鍵關係我有一個類Problem,然後延伸的基類SolutionBasicSolutionExpertSolution,許多其他 溶液子類的各種其他類。該Problem類將各種解決方案班「外鍵」,雖然Problem類並不需要的解決方案列表。實現在休眠

所以我想Problem表在各種解決方案表(每個解決方案子類一個表)的外鍵。我如何通過Hibernate實現它?

我知道這不是從Hibernate的角度來看的正確的數據庫設計,但它是一個遺留系統,不能被調整。我知道一對多實體 關聯,但需要一些解決方案列表出現在問題類(我不想)中。

能否請您提出一些回答這個問題呢?

回答

1

你需要映射與@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必須在關係的這一側具有外鍵。

+0

問題可以有多個解決方案,因此在解決方案表(多個表,每種解決方案的每個表)中,問題表將存在一個外鍵。現在的問題是,您不需要在Problem類中擁有Solution的實例。 – Ashish 2012-04-12 09:16:34

+0

好吧現在我明白了,我正在編輯你的案例的答案,謝謝你 – Teg 2012-04-12 09:44:24