在em.persist(course1)時,id還是null
(尚未透過JPA寫值進DB,再這之前,JPA也尚未給序號)
當過了em.persist(course1);後
course1就取得id為1(JPA預先給序號,但注意此時course1還沒寫進DB)!!
過了em.flush();後才會看到上面console有出現兩筆INSERT
Debug mode到了em.refresh(course1);(如上圖)
course1的name已經變為有Update的字串
Debug mode來到em.flush();
可以見到course1因為經過refresh已經變回原本沒有Update的字串
之後過了em.flush();(意即em.flush();執行了)
那麼就只會觸發一筆資料UPDATE =>沒有被refresh的coures2
(在Debug mode下去看H2-console會看不到上述coures1 & course2之資料)
改正常執行DemoApplication
可以見到:
目前專案筆記在"SpringJPA深入0426"內