我在我的spring MVC項目中使用了一個MySQL數據庫的hibernate。我已使用@GeneratedValue
註釋在我的ID字段上設置自動增量網。所以我所有的實體有這樣的一段代碼,一切都按預期工作:hibernate - 如何在mysql和oracle數據庫中設置自動增量?
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
在這個時候,我想切換到Oracle數據庫。現在,我在這裏有兩個問題:
1.什麼是在oracle中設置自動遞增字段的最佳解決方案?我用這個代碼,但不工作:
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_Sequence")
@SequenceGenerator(name="id_Sequence", allocationSize=1)
2(更重要的問題)。有沒有什麼辦法可以使用一個獨特的註釋來設置自動增量,可以同時用於MySQL和Oracle?
謝謝您的回答。在第一個建議中不需要使用'strategy = GenerationType.SEQUENCE'? – hamed
我不認爲是因爲你將你的生成器定義爲一個'@ SequenceGenerator'。 –
我把'@SequenceGenerator(name =「some_gen」,sequenceName =「Emp_Seq」) @GeneratedValue(generator =「some_gen」)'超過了我的id,但不工作。另外'@GeneratedValue(strategy = GenerationType.TABLE)'不起作用。 – hamed