MySQL
CREATE TABLE `role` (
`id_role` INT(11) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id_role`)
) AUTO_INCREMENT=1;
Hibernate
@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自动增量字段,同时返回所选的主键?
auto_increment
,那么是 MySQL 生成数字。ORM 无法计算真正唯一的整数主键。 - N.B.