[英]How to remove entity with first level cache and JPA in one open session?
在我的持久層中,我有remove
方法,該方法將刪除已刪除的 state 和EntitySession
中的實體以提交更改。
EntitySession
transaction = entityManager.getTransaction();
public BehindCacheBuilder<R, V> remove(Object object) {
entityManager.remove(object);
return this;
}
transaction.commit();
但是當我執行該方法時,不會從數據源中刪除任何內容。
與任何后寫緩存一樣,持久性上下文需要刷新(在您的情況下提交,這與刷新不同)以便將內存持久性 state 與底層數據源同步。
因此,首先確保您要刪除的實體首先出現在托管 state 中,然后嘗試remove
以更改 state 以在刷新(提交)后刪除實體。
public BehindCacheBuilder<R, V> remove(Class<?> type, Object object) {
entityManager.remove(entityManager.find(type, object));
return this;
}
在這里,我們將要刪除的實體帶到托管state。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.