strategy = GenerationType.SEQUENCE 依赖于 Oracle 中的序列



我是SequenceGenerator的新手。我只是想知道,如果我使用 GenerationType.SEQUENCE,那么我们必须创建名称为 SAMPLE_ID_SEQ 的序列?

@Id
 @SequenceGenerator(name = "SAMPLE", sequenceName = "SAMPLE_ID_SEQ", allocationSize = 1)
 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SAMPLE")
 @Column(name = "ID")

是的,您必须在数据库中创建一个序列。

这是预言机网站所说的:

指定序列

若要使用特定的命名序列对象,

无论该对象是通过架构生成生成的还是已存在于数据库中的,都必须使用@SequenceGenerator注释定义序列生成器。您可以选择任何唯一标签作为序列生成器的名称。通过@GeneratedValue注释中的生成器元素引用此名称。此外,还包括 sequenceName 元素以指定您正在使用的数据库序列对象的名称。

如果数据库中已存在序列对象,则必须指定 allocationSize 以匹配数据库序列对象的 INCREMENT 值。

你可以在这里阅读:http://www.oracle.com/technetwork/middleware/ias/id-generation-083058.html#sequence

最新更新