hibernate postgres id在10s内递增

时间:2012-03-01 00:24:04

标签: java hibernate

我在使用postgresql

的hi​​bernate时遇到了问题
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@Column(name = "id")
private Long id;

问题是id在10s内生成,例如

10
20
30

如何制作

1
2
3

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

正如已经指出的那样,你应该使用另一个注释@ javax.persistence.SequenceGenerator 我就是这样做的

@Id
@javax.persistence.SequenceGenerator(name = "order_id_sequence", sequenceName = "order_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "order_id_sequence")
@Column(name = "id")

答案 2 :(得分:0)

您知道,您将无法依赖没有间隙的序列中的值,因为数据库无法在以下情况下回滚序列:

  1. 会话A从序列中提取一个数字,例如1。
  2. 会话B从序列中拉出一个数字2。
  3. 会话A回滚其交易。
  4. 会话B提交。
  5. 所以,我建议你不要担心它,或者使用不同的方法生成一系列没有间隙的唯一数字。