我是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")
答案 0 :(得分:0)
是的,您必须在数据库中创建序列。
这是oracle网站所说的:
指定序列
要使用特定的命名序列对象,无论它是由模式生成生成还是已存在于数据库中,您必须使用@SequenceGenerator批注定义序列生成器。您可以选择任何唯一标签作为序列生成器的名称。通过@GeneratedValue注释中的generator元素引用此名称。另外,请包含sequenceName元素以指定您正在使用的数据库序列对象的名称。
如果序列对象已存在于数据库中,则必须指定allocationSize以匹配数据库序列对象的INCREMENT值。
您可以在此处阅读:http://www.oracle.com/technetwork/middleware/ias/id-generation-083058.html#sequence