我有一个这样的 jpa 配置:
@Id
//@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_gen")
@GeneratedValue(generator = "timedep_seq_gen")
@GenericGenerator(
name = "seq_gen",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "sequence_myseq"),
@Parameter(name = "initial_value", value = "1"),
@Parameter(name = "increment_size", value = "10"),
@Parameter(name = "optimizer", value ="hilo")
}
)
private Long id;
插入正在创建像 1,2,3.. 这样的 id 值,这很好,直到我手动执行
SELECT nextval('sequence_myseq');
我希望在从 pgadmin(或任何其他客户端)运行上述内容时,jpa/hibernate 生成器生成的下一组值应该跳过 id 列的值,但事实并非如此。它仍然会生成值而不跳过任何 id 值。这里有什么问题 ?
编辑 1
直到我得到一些具体的答案,看起来hilo
优化不适用于多个实例。以下是有效的,但它需要你设置
increment by 10
在您的序列定义中也是如此。
@GeneratedValue(generator = "dep_seq_gen")
@SequenceGenerator(
name = "dep_seq_gen",
sequenceName = "sequence_dep",
allocationSize = 10
)