的MySQL谁负责MySQL和Hibernate之间主键的自动增量?
CREATE TABLE `role` (
`id_role` INT(11) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id_role`)
) AUTO_INCREMENT=1;
休眠
@Entity
public class Role {
private Integer idRole;
@Column(name = "id_role", precision = 10)
@GeneratedValue
@Id
public Integer getIdRole() {
return idRole;
}
public void setIdRole(Integer idRole) {
this.idRole = idRole;
}
}
鉴于上述背景,创建一个新的role
时,谁负责的id_role
列的自动递增的?换句话说,Hibernate在运行create
SQL语句之前是否设置了主键值,还是将其设置为null
,并让MySQL在获取所选主键时自动递增字段?
我当然希望它会是MySQL,就像Hibe rnate永远不会知道是否有任何密钥被从另一个客户端删除或重用。 – 2013-03-13 16:23:49
如果表格显示'auto_increment',那么它就是生成该数字的MySQL。 ORM无法计算真正唯一的整数主键。 – 2013-03-13 16:26:37
这取决于你真正独特的东西吗?)。 ORM可以计算伪唯一整数主键。它只是低效。 – 2013-03-13 16:45:06