我試圖在EclipseLink中使用緩存。 我在persistence.xml中啓用了shared-cache-mode = ENABLE_SELECTIVE,所以當我使用@Cacheable(true)時,實體獲得緩存。現在我想在版本過期時使其工作,並且刷新狀態。EclipseLink緩存refreshOnlyIfNewer不能正常工作
我設置一個樂觀鎖定領域
@Version
@Column(name="optLock")
private int versionNum ;
這是工作的時候,當我嘗試保存有舊版本號的實體則數據庫,我會得到一個異常。
所以,當我添加註釋,以啓用緩存並刷新
@Cacheable(true)
@Cache(size = 500, alwaysRefresh = true, refreshOnlyIfNewer = true)
的實體將不會被緩存。我啓用了eclipselink.profiler,我可以看到沒有針對此實體的緩存,並且缺少Counter:CacheHits和Counter:CacheMisses日誌。
當我刪除
@Cache(size = 500, alwaysRefresh = true, refreshOnlyIfNewer = true)
實體再次緩存而是直接在數據庫中的任何改變完成(並增加OPTLOCK場)不會來通過。
我忘了她嗎?或者我應該考慮使用這個工作?我一直在閱讀的文件似乎應該是工作。