1. 程式人生 > >Hibernate中實體型別(Entity Type)與值型別(Value Type)的概念分析

Hibernate中實體型別(Entity Type)與值型別(Value Type)的概念分析

Hibernate中的實體型別和值型別,大家在實際應用中都有一個大致的概念,但是如何更明確的給他們下一個合適的定義呢?

我們需要從Hibernate看待各種物件出發。

物件內有用於標識用的屬性(一般都是id),該標示屬性在資料庫有其對應的主鍵,而且該物件可以被多出引用(比如當做其他物件的屬性),稱之為實體型別

而類本身沒有用以標識的屬性,依賴於某個物件(生命週期取決於所依賴的物件),並且無法被兩個以上的物件引用的物件,則稱之為值型別

實體型別(Entity Type)與值型別(Value Type)定義對照表
比較特性 實體型別(Entity Type) 值型別(Value Type)
物件中,是否存在用以標識該物件的屬性(如果主鍵是複合主鍵,可能是多個),而該屬性在資料庫中有其對應的主鍵。 存在,而類中對應主鍵的屬性,則用來標識物件。 沒有,因此物件本身沒有用來標識物件的屬性(但是該類可能會有專屬的Table,只是Table中的主鍵,並不會對應到物件中的任一屬性。)
能否被一個以上的物件所引用 能,被其他物件引用時,在資料庫內通過外來鍵來關聯,也正因為可以被一個以上的物件所引用,因此要具備用來標識的屬性。 否。
生命週期 可獨立自主 取決於所依賴的類