【发布时间】:2022-01-16 22:12:23
【问题描述】:
我正在使用 SequenceGenerator 为我的实体生成主键。现在有一个用例,我需要使用给定的 id 而不是序列生成的 id。
我尝试通过给定值设置 id 字段并保存它,但自定义 id 已被序列覆盖。那么有没有什么方法可以告诉休眠使用给定的id,如果它不为null,或者如果id没有明确设置,则使用序列生成一个新的id?
我当前的 id 生成器
@Id
@SequenceGenerator(name = "userSeqGen", sequenceName = "userSeq", initialValue = 100, allocationSize = 50)
@GeneratedValue(generator = "userSeqGen")
private Integer id;
【问题讨论】:
-
手动设置 ID 绝不是一个好主意,您很容易与现有 ID 发生冲突。为什么需要这样做?
标签: java hibernate spring-data-jpa