JPA連接MySQL報錯Table 'test.hibernate_sequence' doesn't exist


采用的是https://stackoverflow.com/questions/32968527/hibernate-sequence-doesnt-exist里面的這個方案解決的問題

You can also put :

@GeneratedValue(strategy = GenerationType.IDENTITY)

And let the DateBase manage the incrementation of the primary key:

AUTO_INCREMENT PRIMARY KEY


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了.

同時,也可采用uuid,native等其它策略.(相關用法,上網查詢)






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM