Spring根据表中的行数生成ID
Posted
技术标签:
【中文标题】Spring根据表中的行数生成ID【英文标题】:Generate ID based on number of rows in table in Spring 【发布时间】:2012-04-26 06:26:55 【问题描述】:我正在开发一个 Spring 3 MVC 应用程序。我使用休眠作为ORM。在定义模型时,我有一个 ID 字段。我想以这样一种方式自动生成它,它的值是表中的当前行数 + 1。怎么做?
【问题讨论】:
【参考方案1】:AUTOINCREMENT
列或序列可以解决问题。在 Hibernate 中,只需用 @GeneratedValue
注释 id
:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
Hibernate 会自动将 id 设置为下一个可用值。
另见
Hibernate Auto Increment ID【讨论】:
嗨。这里的问题是某些元素可能会在某个时候被删除。在这种情况下,当我添加一个新元素时,id 不是按顺序排列的,而是等于在表中某一点添加的元素总数。 @KaushikBalasubramanin:我知道。但是想象一下:当你添加三个记录时,它们将有 1、2 和 3 个 id,对吗?然后,当您删除第一个或第二个并添加另一个时,根据您的算法,它应该具有 id 3(数据库中一次存在 2 条记录) - 但具有此类 id 的记录已经存在!以上是关于Spring根据表中的行数生成ID的主要内容,如果未能解决你的问题,请参考以下文章
根据表中的行数调整 NSTableView 或 NSScrollView 的大小