2016-03-29 120 views
2

如果我不想自動生成主鍵,我想提供帶有表的第一列的ID作爲主鍵。@ JPA和休眠中的ID註釋

2 A 
4 B 
7 D 
13 E 

...

我想的第一列2,4,7,13是表的主鍵。我應該只使用@Id來做註釋嗎?或者,如果使用了@Id,在這種情況下,主鍵將始終自動生成,而不是使用第一列,而不是使用第一列,而不是使用第一列。

+2

如果您使用「@ Id」,則不需要'unique = true'。 –

回答

1

@Id只會聲明主鍵。它不會插入生成的值。如果您使用@GeneratedValue那麼它會生成該字段的值。

+0

主鍵通常應該自動生成嗎? – user697911

+0

不,因爲在表中還可以有非自動生成的主鍵 – stinepike

0

object id (OID)是唯一標識object的東西。在​​內,這通常是object's指針。在關係databasetable中,行的唯一標識是primary key

當堅持objects到你需要的objects唯一標識符的數據庫,這可以讓你查詢object,定義relationshipsobject,並且更新和刪除object。在JPA中,對象ID是通過@Id註釋定義的,並應與object's表的primary key對應。

object id可以是自然ID或生成的ID。自然編號是發生在object中的編號,在應用程序中有一些含義。自然ID包括電子郵件地址,電話號碼和社會保險號碼。生成的ID(也稱爲代理ID)是由系統生成的。

JPA@Id可以通過@GeneratedValue註釋容易地分配生成的序列號。

0

如果您始終手動爲您的實體提供主鍵值,那麼@Id註釋就足夠了。