如果我不想自动生成主键,我想提供ID和表的第一列作为主键。
2 A
4 B
7 D
13 E..。
我希望第一列2,4,7,13成为表的主键。我应该只使用@Id来做注释吗?
@Entity
public class Code {
@Id
@Column(unique=true)
private int id;
...
}或者,如果使用@Id,主键将始终自动生成,而不是使用第一列?
发布于 2016-03-29 12:20:57
@Id将只声明主键。它不会插入生成的值。如果您使用@GeneratedValue,那么它将生成该字段的值。
发布于 2016-03-29 12:40:32
object id (OID)是唯一标识object的东西。在VM中,这通常是object's指针。在关系database table中,行在其表中由其primary key唯一标识。
在将objects持久化到数据库时,您需要objects的惟一标识符,这允许您查询object、定义object的relationships以及更新和删除object。在JPA中,对象id是通过@Id注释定义的,应该与object's表的primary key相对应。
object id可以是自然id,也可以是生成的id。自然id是出现在object中并在应用程序中具有某种意义的id。自然ids的示例包括电子邮件地址、电话号码和社会保险号码。生成的id (也称为代理id)是由系统生成的id。
在JPA中,可以通过@GeneratedValue注释轻松地为@Id分配一个生成的序列号。
发布于 2016-03-29 12:47:12
如果您总是手动为实体提供主键值,那么@Id注释就足够了。
https://stackoverflow.com/questions/36275309
复制相似问题