2012-12-18 27 views
2

按照Hibernate文檔:休眠:使用的原始渴望標識屬性

我們建議您對持久化類聲明命名一致的標識屬性。您使用的是空(也就是說,不是原始類型)類型。

當GenerationType設置爲AUTO且標識屬性的類型爲long(原始)時,可能會出現哪個問題?

回答

2

使用Long對象即java.lang.Long

我覺得休眠可能與原始類型的問題,因爲有些時候它可能會嘗試將其設置爲null

+0

我知道可能有原始類型的問題。我的問題是可能是這些問題。 –

+0

有時它可能會嘗試將其設置爲空。 – cowls

+0

你知道這些場合是什麼嗎? –

0

當使用Hibernate的「查詢通過實例的能力爲ID的null值可能試圖找到一個設置有不同的ID值的對象時是可取的,例如。在這種情況下,long id,默認爲0,可能與Long id的值不同,值爲null - 也許值0是數據庫中的有效標識符?

+0

在我的情況下,數據庫中沒有使用ID 0,所以我沒有遇到這種問題。 –

+0

僅僅因爲'0'不被使用*並不意味着從Hibernate的角度來看它並沒有任何意義,假設'0'實際上是一個你正在嘗試檢索的對象的id值 - 事實並非如此在這種情況下,永遠不會返回任何對象。省去麻煩,用'Long':) – JimmyB