hibernate注释如何生成主键?

时间:2016-04-23 15:33:18

标签: hibernate jpa

我正在使用hibernate注释来生成我的数据库表:

public class Item {
    @Id @GeneratedValue
    @Column(name="itemid", unique = true, nullable = false)
    private long id;
}

但我不明白它是如何产生id的。我假设它将生成与表中已有的id不同的id。但事实是,它不会持续产生id。以下图片来自我的数据库:

enter image description here

有时当我重建我的项目并想要在数据库中插入一个新项目时,它会生成一个与之前相同的itemid(例如; 12,已经在表中),由于这个原因,插入将失败,因为它不允许重复键。

任何人都知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。通过将以下内容添加到我的组件(在您的情况下为类项目)来解决它。

@GeneratedValue(strategy=GenerationType.IDENTITY)