Hibernate 可以出色地自動生成主鍵。Hibernate/EBJ 3 註釋也能夠爲主鍵的自動生成提供豐富的支持,容許實現各類策略。
其生成規則由@GeneratedValue設定的.這裏的@id和@GeneratedValue都是JPA的標準用法, JPA提供四種標準用法,由@GeneratedValue的源代碼能夠明顯看出.
JPA提供的四種標準用法爲TABLE,SEQUENCE,IDENTITY,AUTO.
TABLE:使用一個特定的數據庫表格來保存主鍵。
SEQUENCE:根據底層數據庫的序列來生成主鍵,條件是數據庫支持序列。
IDENTITY:主鍵由數據庫自動生成(主要是自動增加型)
AUTO:主鍵由程序控制。
在指定主鍵時,若是不指定主鍵生成策略,默認爲AUTO。
@Id
至關於
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
identity:
使用SQL Server 和 MySQL 的自增字段,這個方法不能放到 Oracle 中,Oracle 不支持自增字段,要設定sequence(MySQL 和 SQL Server 中很經常使用)。
Oracle就要採用sequence了.數據庫
我這裏把自動生成修改成這樣就能夠了:ide
@GeneratedValue(strategy=GenerationType.IDENTITY)spa