1
我有很多類C1,C2,..,Cn(n〜100)。每個類都有對其他類(子)的引用。但是可以在不同類別中引用一個類(孩子可以有不同類型的父母)。例如,C1可能有以下孩子:C2,C3,C4。但C2也可能是C4的孩子。休眠的表現:很多孩子的基類相同
class C1 extends AbstractEntity{
C2 c2;
C3 c3;
C4 c4;
}
class C4 extends AbstractEntity {
C2 c2;
C5 c5;
}
有一個實體,我想獲得它的父項。所以我創建AbstractEntity類
class abstract AbstractEntity{
Long id;
AbstractEntity parent;
}
當我在Hibernate中使用JPA註釋來將對象保存到數據庫。所以,我得到以下AbstractEntity表:
table AbstractEntity (id long primary key, parent_id long foreign key references AbstractEntity(id), discriminator varchar(40));
我們執行與具體的實體的任何操作(添加,更新,刪除)與AbstractEntity加入將執行。對於每個操作!所以所有的操作都需要訪問同一個表。這將如何影響性能?這是否允許我同時對不同的資源類型執行操作,它們不會被阻止嗎?
我知道整個表在整個交易過程中並沒有被鎖定,而且這很大程度上取決於所使用的DBMS。但總的來說,在使用hibernate時,最好考慮擺脫大量子類的公共超類的方式?如果DBMS真的很重要,那麼它就是MySQL和Oracle。