2008-09-18 87 views
11

是否有可能在Hibernate中繞過@GeneratedValue的ID,我們有一種情況是,大多數時候我們希望使用GeneratedValue來設置ID,但在某些情況下想要手動設置ID 。在休眠中跳過生成的值

這是可能的嗎?

回答

5

我知道你可以在JPA規範中做到這一點,所以你應該可以在Hibernate(使用JPA +註解)。

如果您只是填寫您要創建的新持久模型的ID字段,那麼當您將該模型「合併」到EntityManager中時,它將使用您設置的ID。

這確實有分歧,但。您剛用完該ID,但由GeneratedValue註釋指定的序列不知道。除非你指定的未使用的ID小於當前的序列值,否則一旦序列達到剛剛使用的值,就會出現問題。

所以,也許我能看到你可能希望用戶能夠指定一個ID,但隨後你需要捕捉可能的異常(重複的ID),可能會在未來。

+0

在我的情況下,不會有重複,因爲在這兩種情況下,只會在交易中的不同位置產生相同的序列ID。 – 2008-09-18 03:25:34