JPA @Id 和 @GeneratedValue 注解詳解


JPA @Id 和 @GeneratedValue 注解詳解

@Id: 
@Id 標注用於聲明一個實體類的屬性映射為數據庫的主鍵列。該屬性通常置於屬性聲明語句之前,可與聲明語句同行,也可寫在單獨行上。 
@Id標注也可置於屬性的getter方法之前。

@GeneratedValue: 
@GeneratedValue 用於標注主鍵的生成策略,通過strategy 屬性指定。默認情況下,JPA 自動選擇一個最適合底層數據庫的主鍵生成策略:SqlServer對應identity,MySQL 對應 auto increment。 
在javax.persistence.GenerationType中定義了以下幾種可供選擇的策略: 
–IDENTITY:采用數據庫ID自增長的方式來自增主鍵字段,Oracle 不支持這種方式; 
–AUTO: JPA自動選擇合適的策略,是默認選項; 
–SEQUENCE:通過序列產生主鍵,通過@SequenceGenerator 注解指定序列名,MySql不支持這種方式 
–TABLE:通過表產生主鍵,框架借由表模擬序列產生主鍵,使用該策略可以使應用更易於數據庫移植。

推薦的兩種寫法: 
屬性之上:

getter方法之上:

 

但是不能某個注解在屬性之上,某個注解在getter之上,將拋出異常,對其他注解也相同


  1.  


免責聲明!

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



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