2014-01-09 64 views
0

我已經聲明爲GenerationType.AUTO其具有ID INT字段實體bean領域使得ID是自動生成的:JPA GenerationType.AUTO和設置手動

@Entity 
public class CustomerPool implements Serializable 
{ 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    //setters getters 
} 

但是我需要確定插入的第一個CustomerPool的ID爲0.

我認爲設置一個ID爲0的CustomerPool將優先於指令,而不是我有不同的行爲(使用JPA而非EclipseLink),但大多數我設置的ID被忽略。

因此,如果沒有指出,是否可以將ID設置爲自動生成,否則如果指示使用指定的ID? 不知怎的,我習慣於在PHP中這樣做,並且對我來說顯得很自然。

+1

'GenerationType.AUTO'說:「我不爲這裏所描述這是通過主鍵驗證策略配置不在乎這些價值是如何產生的!'因此,你真的不應該在乎,它是你的JPA提供者和使用的DBMS的實現細節。如果你在乎,你應該考慮其他世代方法或自己管理世代。 – gregor

回答