我想知道是否有一种干净的(或原生的)方法来为表生成序列,将其用作序列号。它需要是连续的(1,2,3 ......等),并避免任何可能的竞争/交易问题(如果多个用户试图同时持续)。它不需要是主键。
@Id
private Long id;
private Long serialNumber;
感谢。
答案 0 :(得分:2)
我想知道是否有一种干净的(或原生的)方法来为表生成序列,并将其用作序列号。
据我所知,不,不是非Id
字段。
但是您可以使用具有适当生成器策略的专用实体,并在需要时保留新实例以从中获取下一个id。
另一种选择是模拟TABLE生成器策略并使用本机SQL从中读取下一个id并递增它。
答案 1 :(得分:1)
@id @GeneratedValue(strategy = IDENTITY)?
答案 2 :(得分:1)
DataNucleus支持在非Id字段上使用@GeneratedValue。
答案 3 :(得分:0)