2016-04-23 49 views
0

我使用Hibernate的註解來生成我的數據庫表: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,已經在表中),並且由於這個原因,插入將失敗,因爲它不允許重複鍵。

任何人都知道爲什麼會發生這種情況?

+0

取決於數據庫。你在用什麼? –

+0

我正在使用mysqlworkbench – user5516371

回答

1

我遇到了同樣的問題。通過將以下內容添加到我的組件中,解決了您的問題。

@GeneratedValue(strategy=GenerationType.IDENTITY) 
+0

這對我很有用!謝謝〜 – user5516371

+0

Wc。你可以請upvote答案。 – LearningPhase

+0

沒問題~~~~~ – user5516371