2016-03-29 124 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注释就足够了。