1. 程式人生 > >Spring Data JPA的save之坑

Spring Data JPA的save之坑

問題

因為想要用mysql自增id,想要在save之後獲取這個儲存的實體的id判斷是否插入成功,一直以為Spring Data JPA中的save方法執行結束之後,save(entity)中的entity就會自動被更新為儲存的entity,但是其實不是這樣的,save之後這個實體的id總是為0

解決辦法

必須在主鍵get方法上要加上

@GeneratedValue(strategy = GenerationType.AUTO)

@GeneratedValue(strategy = GenerationType.IDENTITY),Spring Data JPA才會知道你想要拿到這個儲存後的實體,再返回這個實體

 //返回主鍵
 @GeneratedValue(strategy = GenerationType.AUTO)
 //或
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 @Id
 @Column(name = "id")
 public int getId() {
 return id;
 }