2011-06-23 92 views

回答

0

如果您希望應用程序分配標識符,而不是讓Hibernate生成標識符,那麼您可以使用分配的生成器。這個特殊的生成器使用已經分配給對象的標識符屬性的標識符值。當主鍵是自然鍵而不是代理鍵時使用生成器。如果不指定元素,這是默認行爲。

分配的生成器使Hibernate使用unsaved-value =「undefined」。這迫使Hibernate去數據庫,以確定一個實例是暫時的還是分離的,除非有版本或時間戳記屬性,或者你定義了Interceptor.isUnsaved()。

+0

聲明_這迫使Hibernate去數據庫以確定一個實例是否是transient或detached_,意味着Hibernate使用unsaved-value來確定一個對象是否被分離。這不可能是正確的,因爲Hibernate使用unsaved-value來確定一個對象是否是瞬態的。 – Chezzplayer

+1

哦...我明白了。如果未保存的值匹配,Hibernate知道它是一個瞬態對象並使用INSERT。如果是這樣,Hibernate知道它的分離並使用UPDATE。 – Chezzplayer