【发布时间】:2021-03-03 17:04:12
【问题描述】:
我正在寻求对这个问题的澄清:@GeneratedValue(strategy="IDENTITY") vs. @GeneratedValue(strategy="SEQUENCE")(将近十年的历史有什么变化吗?)
开始学习 jpa,以下生成类型似乎都自动递增由 1 生成的主键。
身份:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
顺序:
@Id
@SequenceGenerator(
name = "my_sequence",
sequenceName = "my_sequence",
allocationSize = 1
)
@GeneratedValue(
strategy = GenerationType.SEQUENCE,
generator = "my_sequence"
)
private Long id;
我了解GenerationType.SEQUENCE 创建的序列对象不像GenerationType.IDENTITY 那样直接绑定到表。老问题提到顺序可以更灵活。选择其中一种策略而不是另一种策略是否有任何目标优点或缺点?考虑到所引用问题的年龄,还有什么新东西吗?
【问题讨论】: