您好我寫了這樣的如何生成具有自動休眠ID與初值
@Id @Column(nullable=false) @GeneratedValue(strategy=GenerationType.AUTO) public int getUserID() { return UserID; }
但是我手動從DAO像「e.setUserID設置它(01)代碼生成; 「插入。其他行不插入是否有任何過程來獲得id值,並檢索自動生成的值。即時通訊思想我會得到一些幫助
您好我寫了這樣的如何生成具有自動休眠ID與初值
@Id @Column(nullable=false) @GeneratedValue(strategy=GenerationType.AUTO) public int getUserID() { return UserID; }
但是我手動從DAO像「e.setUserID設置它(01)代碼生成; 「插入。其他行不插入是否有任何過程來獲得id值,並檢索自動生成的值。即時通訊思想我會得到一些幫助
使用
@GenericGenerator(name="generator", strategy="increment")
@GeneratedValue(generator="generator")
使用身份生成類型,而不是汽車。使用一個長的ID。我還建議更改名稱從用戶ID到userId。不要忘記類名的@Entity。
@Entity
public class MyClass{
private Long userId;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column
public Long getUserID(){
return userId;
}
//.. rest of class
}
要小心使用命名約定,並確保您的字段名稱和類型與數據庫中的字段名稱和類型相匹配。
當創建行時,它會自動創建ID值...或者我們應該調用setter方法 – Vidya 2012-04-12 04:50:55
如果在數據庫中,id應該顯示爲身份,您應該從不**手動設置id。首先確保你的數據庫配置是自動增加ID的。然後按照我上面的建議映射id列。同樣,在命名約定和數據類型時要小心。 – 2012-04-12 06:25:36
它的工作,但它是分配到另一列產生的價值 – Vidya 2012-04-12 06:42:26
如果任何人投票,應該有一個理由,應該分享,爲什麼投了票? – Shehzad 2015-07-24 10:21:50
這不是一個安全的方法,因爲生成器從數據庫中選擇最大ID並對其進行遞增。儘管它對於測試目的很有用。文檔清楚地警告'不要在集羣中使用!'。查看:https://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/id/IncrementGenerator.html https://docs.jboss.org/hibernate/orm/3.3/reference/en /html/mapping.html#mapping-declaration-id – 2015-08-11 07:35:48