hibernate @GeneratedValue,如何处理已删除的行。在mysql中

时间:2014-10-30 11:25:58

标签: java hibernate

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int color_id; 

以上生成自动递增的数字,如1,2,3,4,5,6。但是当我们用6删除记录时,下一个生成的数字是7.但我希望下一个生成的数字为6.我该怎么办?我需要自动增量继续从6,7本身而不是7,8有什么办法吗?

1 个答案:

答案 0 :(得分:3)

什么自动生成保证只是密钥的唯一性。这就是你应该需要的。甚至有些情况下自动生成提供了一堆密钥来提高共享数据库的效率:

  • 客户要求创建新行
  • 为该客户端连接保留连续的id系列
  • 此客户端可能会创建许多新行而无需重新询问数据库是否有新ID

这种情况几乎总是会产生行ID

  • 包含洞
  • id不一定在插入时间后递增

相信我:一些生产系统很高兴,因为它会减少对网络和数据库的争用。

如果你想要严格连续的没有洞的id,你可以自己动手,但不要求自动生成数据库ID来为你做这件事。