@Id和@GeneratedValue的使用
文章內容來自於:https://blog.csdn.net/rickesy/article/details/50788161,作者:Rickesy
文章主要用於自己學習SpringBoot,方便以後的查詢
@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:通過表產生主鍵,框架藉由表模擬序列產生主鍵,使用該策略可以使應用更易於數據庫移植。
@Entity(name = "user")
public class User {
@Id
@GeneratedValue
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private Integer age;
//省略getter、setter、構造方法
@Entity
默認會將實體類首字母小寫,如果需要修改,則需要添加@Entity(name="entity name")
進行自定義。