序列号的JPA序列

时间:2010-07-15 14:04:51

标签: java jpa

我想知道是否有一种干净的(或原生的)方法来为表生成序列,将其用作序列号。它需要是连续的(1,2,3 ......等),并避免任何可能的竞争/交易问题(如果多个用户试图同时持续)。它不需要是主键。

   @Id
    private Long id;

    private Long serialNumber;

感谢。

4 个答案:

答案 0 :(得分:2)

  

我想知道是否有一种干净的(或原生的)方法来为表生成序列,并将其用作序列号。

据我所知,不,不是非Id字段。

但是您可以使用具有适当生成器策略的专用实体,并在需要时保留新实例以从中获取下一个id。

另一种选择是模拟TABLE生成器策略并使用本机SQL从中读取下一个id并递增它。

答案 1 :(得分:1)

@id @GeneratedValue(strategy = IDENTITY)?

答案 2 :(得分:1)

DataNucleus支持在非Id字段上使用@GeneratedValue。

答案 3 :(得分:0)