jpa 2.0是否有某種「相反」的引用延遲加載註釋?即提示jpa註釋:如果註釋的引用是對對象的唯一剩餘引用,則目標對象適用於垃圾回收,如果內存不足的話。卸載JPA參考
如果訪問先前加載的引用,那麼我會非常滿意支付性能命中,導致後續加載相同,因爲它已被換出。我需要這樣的行爲,因爲我的域名太大而無法保存在內存中。我一直在尋找這個,但不斷空出來,讓我懷疑我是否正在接近錯誤的問題。
jpa 2.0是否有某種「相反」的引用延遲加載註釋?即提示jpa註釋:如果註釋的引用是對對象的唯一剩餘引用,則目標對象適用於垃圾回收,如果內存不足的話。卸載JPA參考
如果訪問先前加載的引用,那麼我會非常滿意支付性能命中,導致後續加載相同,因爲它已被換出。我需要這樣的行爲,因爲我的域名太大而無法保存在內存中。我一直在尋找這個,但不斷空出來,讓我懷疑我是否正在接近錯誤的問題。
是否jpa 2.0有某種「相反」的引用延遲加載註釋?
的Lazy
相反的是Eager
,可惜這可能不是你所期待的,因爲這些都是「取methods`。
即一個註釋,提示jpa如果註釋的引用是對象的唯一剩餘引用,則目標對象適用於垃圾收集,如果內存不足。
不,沒有這樣的註釋。這種行爲聽起來像你不想要的東西。這可以在NullPointerException
s,IndexOutOfBoundException
s,LazyInitializationException
s等中解決。如果對象沒有引用它,則只有對象纔有資格進行垃圾回收。 (這不是GC的完整解釋,但是這是基本的規則。)
我將與支付的性能損失,如果在相同的後續裝載訪問以前加載參考,結果完美的內容,因爲它已被換出。我需要這樣的行爲,因爲我的域名太大而無法保存在內存中。我一直在尋找這個,但不斷空出來,讓我懷疑我是否正在接近錯誤的問題。
我認爲你是以錯誤的方式接近問題。我對你的應用一無所知,所以很難說出你能做什麼。如果一個對象不再需要(用你的方式),那麼你需要處理這個。 JPA不會自動爲你做這件事。
謝謝你的答案!我意識到現在我應該在我的問題上更具體。我的域模型是一個內存過大的無向圖。我的客戶端邏輯遍歷圖形,處理遇到它們的節點。一旦一個節點已經被處理,客戶端邏輯就繼續通過其中一個鏈接到相鄰節點。給定足夠的時間,遍歷算法將重新處理先前處理的節點。 我需要卸載一個處理過的節點由於內存,但一個卸載節點將需要再次在某個時刻。使用JPA完成此操作的最佳方法是什麼? –