如何使用javax persistence/seam动态设置id编号系列

如何使用javax persistence/seam动态设置id编号系列,java,persistence,seam,Java,Persistence,Seam,我有一个简单的实体叫做秩序。我现在使用的ID策略是: @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "ORDER_ID") private Long id; 现在,硬编码另一个startvalue似乎很容易: @Entity @SequenceGenerator(name = "SequenceIdGenerator", sequenceName = "SEQ_ID_GEN", initialVa

我有一个简单的实体叫做秩序。我现在使用的ID策略是:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ORDER_ID")
private Long id;
现在,硬编码另一个startvalue似乎很容易:

@Entity
@SequenceGenerator(name = "SequenceIdGenerator", 
    sequenceName = "SEQ_ID_GEN", initialValue = 50, 
    allocationSize = 20)
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SequenceIdGenerator")
    @Column(name = "ORDER_ID")
    private Long id;
但这是硬编码到50。我可以动态设置该值吗?最好是把它存储在数据库或属性文件中


或者动态设置id不是最佳做法吗?

通常,但并非总是,最简单的方法是在数据库中创建一个序列并使用该序列。我希望以下示例中没有太多错误:

@Id
@GeneratedValue(generator="IdSeq")
@SequenceGenerator(name="IdSeq",sequenceName="SEQ_ID_GEN", allocationSize=20)

看起来不错。但是如何在数据库中创建序列呢?我可以从seam/java中完成吗?您可以使用任何数据库客户机命令行、GUI、JDBC,以及任何具有适当权限的工具来完成。您需要数据库的文档-PostgreSQL的文档位于此处:。