我对主键使用了以下id生成策略。
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false, insertable = false, updatable = false)
private Integer id;
我想对非主键列执行相同的操作。
[a]为此类 key 定义自动生成方案的语义是什么
[b]是否可以保证生成的数字在数字上不存在间隙。
最佳答案
如果删除@Id
批注,然后保留其余的(当然更改字段名),那应该可以工作。
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "columnName", unique = true, nullable = false, insertable = false, updatable = false)
private Integer columnName;
通过允许数据库生成列值,您将确保没有间隙,除非删除和回滚。例如,如果删除表中间的行,则将创建一个不会被填充的空白。