我正在使用hibernate注释来生成我的数据库表:
public class Item {
@Id @GeneratedValue
@Column(name="itemid", unique = true, nullable = false)
private long id;
}
但我不明白它是如何产生id的。我假设它将生成与表中已有的id不同的id。但事实是,它不会持续产生id。以下图片来自我的数据库:
有时当我重建我的项目并想要在数据库中插入一个新项目时,它会生成一个与之前相同的itemid(例如; 12,已经在表中),由于这个原因,插入将失败,因为它不允许重复键。
任何人都知道为什么会这样吗?
答案 0 :(得分:1)
我遇到了同样的问题。通过将以下内容添加到我的组件(在您的情况下为类项目)来解决它。
@GeneratedValue(strategy=GenerationType.IDENTITY)