Javax 持久性在生产级别将 IDENTITY 更改为 SEQUENCE

Javax persistence change IDENTITY to SEQUENCE on production level

是否可以将 id 生成从 GenerationType.IDENTITY 更改为 GenerationType.SEQUENCE 而不会对服务的生产版本产生影响?数据库管理系统是 PostgreSQL。

我需要切换到 SEQUENCE 以允许 Hibernate 执行批处理操作。但是我的生产服务有大约一年的 IDENTITY 策略。实体 class 中的更改是否会以某种方式影响之前生成的 ID?

现在我有

@Entity 
@EqualsAndHashCode(of = {"id"}, callSuper = false)
public class MyClass {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Getter @Setter
    private Long id;

}

如果我将策略更改为 GenerationType.SEQUENCE 会怎样?

只要您确保序列的起始值高于 id 列中的任何现有值,对 GenerationType.SEQUENCE 的更改应该不会成为问题。