簡體   English   中英

有沒有一種方法可以僅使用一個表在Hibernate中創建OneToMany關系?

[英]Is there a way to create a OneToMany relationship in Hibernate using only one table?

我正在嘗試通過如下定義的名為STUDENT_ADDRESS的表創建Student和Address對象。

Table Name: STUDENT_ADDRESS
Columns:
STUDENT_ID
STUDENT_NAME
STUDENT_END_DATE
STUDENT_ADDRESS_END_DATE
ADDRESS_ID
ADDRESS_VALUE
ADDRESS_END_DATE

我知道這是有史以來效率最低的表。 但是更改表結構是一場艱巨的戰斗,我很可能會失敗。

我想做的是創建一個具有一組Address對象的Student對象,並且可以根據STUDENT_ADDRESS_END_DATEADDRESS_END_DATE過濾出地址對象。

我希望這是有道理的。 在此先感謝您的幫助。 :)

您可以在“等待發生的災難”下的Hibernate食譜中進行查找:)

但是,如果您真的必須這樣做,也許可以嘗試使用鑒別器?

我不確定這是否會建立一對多關系。

@Entity  
@Table( name =  "OBJECT")  
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)  
@DiscriminatorColumn(   
    name="OBJ_TYPE",  
    discriminatorType=DiscriminatorType.STRING,  
    length=1  
)  
@DiscriminatorValue("c")  

public class ObjOne {  
...  
}

@DiscriminatorValue("b")
public class ObjTwo {
....
}

警惕制造+1問題(請參閱什么是SELECT N + 1? )在單個表中構建層次結構時,因為這會破壞您的一天,在您整理完最初的問題之后,這可能進展順利...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM