首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPA和Hibernate中的@Id注释

JPA和Hibernate中的@Id注释
EN

Stack Overflow用户
提问于 2016-03-29 12:14:19
回答 3查看 9.3K关注 0票数 6

如果我不想自动生成主键,我想提供ID和表的第一列作为主键。

代码语言:javascript
复制
2 A
4 B
7 D
13 E

..。

我希望第一列2,4,7,13成为表的主键。我应该只使用@Id来做注释吗?

代码语言:javascript
复制
@Entity
public class Code {
   @Id
   @Column(unique=true)
   private int id;

   ...
}

或者,如果使用@Id,主键将始终自动生成,而不是使用第一列?

EN

回答 3

Stack Overflow用户

发布于 2016-03-29 12:20:57

@Id将只声明主键。它不会插入生成的值。如果您使用@GeneratedValue,那么它将生成该字段的值。

票数 2
EN

Stack Overflow用户

发布于 2016-03-29 12:40:32

object id (OID)是唯一标识object的东西。在VM中,这通常是object's指针。在关系database table中,行在其表中由其primary key唯一标识。

在将objects持久化到数据库时,您需要objects的惟一标识符,这允许您查询object、定义objectrelationships以及更新和删除object。在JPA中,对象id是通过@Id注释定义的,应该与object's表的primary key相对应。

object id可以是自然id,也可以是生成的id。自然id是出现在object中并在应用程序中具有某种意义的id。自然ids的示例包括电子邮件地址、电话号码和社会保险号码。生成的id (也称为代理id)是由系统生成的id。

JPA中,可以通过@GeneratedValue注释轻松地为@Id分配一个生成的序列号。

票数 0
EN

Stack Overflow用户

发布于 2016-03-29 12:47:12

如果您总是手动为实体提供主键值,那么@Id注释就足够了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36275309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档