entitymanager 進行數據序列化

場景:同一個方法裏,須要將前一部分執行的數據保存到數據庫。後半部分讀取數據時從數據庫裏獲取,而不是獲取到緩存裏的數據。html

理解eneityManager的這三個方法的做用和區別,首先須要分清楚PersistenceContext 和 EntityManager.java

 

PersistenceContext:是entity的一個實例。數據庫

EntityManager:是和PersistenceContext聯繫在一塊兒的,被用來建立、刪除或者查找一個持久化Entity實例。api

 

換句話來講PersistenceContext能夠說成是數據庫的緩存。緩存

 

 

1.mergeoracle

經過entityManager將一個存在的實體「同步到」persistenceContext中。htm

實體的狀態將從其單獨的狀態轉換爲受persistenceContext管理的狀態。rem

若是Entity是新建立的,則這個方法相似於persist()這個方法。get

若是Entity已經存在的,則只做爲更新操做。同步

 

2.Flush

將PersistenceContext的信息同步到數據庫中。

當觸發Flush這個動做的時候,全部的實體都將會被insert/update/remove到數據庫中。

數據庫不會觸發Commit的操做。

 

3.Refresh

Refresh的做用是從數據庫中將Entity的狀態進行更新操做。若是Entity和數據庫中的數據不一致,將更新數據庫中的數據到Entity中。

相關文章
相關標籤/搜索