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

时间:2018-04-17 04:52:25

标签: java sql oracle jpa

我是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")

1 个答案:

答案 0 :(得分:0)

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

这是oracle网站所说的:

指定序列

要使用特定的命名序列对象,无论它是由模式生成生成还是已存在于数据库中,您必须使用@SequenceGenerator批注定义序列生成器。您可以选择任何唯一标签作为序列生成器的名称。通过@GeneratedValue注释中的generator元素引用此名称。另外,请包含sequenceName元素以指定您正在使用的数据库序列对象的名称。

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

您可以在此处阅读:http://www.oracle.com/technetwork/middleware/ias/id-generation-083058.html#sequence