我对主键使用了以下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;
通过允许数据库生成列值,您将确保没有间隙,除非删除和回滚。
例如,如果删除表中间的行,则将创建一个不会被填充的空白。

10-02 02:41
查看更多