如何使用javax持久性/接缝动态设置id号码系列

时间:2012-01-04 14:18:57

标签: java persistence seam

我有一个简单称为Order的实体。我现在用于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不是最佳做法吗?

1 个答案:

答案 0 :(得分:0)

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

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