如何使用javax persistence/seam动态设置id编号系列
我有一个简单的实体叫做秩序。我现在使用的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
@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的文档位于此处:。