我面臨的實際問題是無論緩存的內容如何,都可以強制進行eclipselink更新。如果新更新的值與緩存中的值相同,則當前eclipselink不會創建新的更新語句。我不想在持久性xml中使用刷新屬性( )。eclipselink提示setter更新
我正在尋找一種解決方案,我可以指定正在更新的實體不使用緩存中的值。
EntityManager em=getEntityManager();
EntityTransaction t = em.getTransaction();
t.begin();
Ticket ticket = get(ticketId);
if(ticket == null) {
return null;
}
ticket.setState(status);
em.persist(ticket);
t.commit();
如果我改變上述更新(的setState方法)到一個SQL查詢,然後將查詢對象有一個選項做setHint在那裏我們可以提到setHint(QueryHints.CACHE_USAGE,CacheUsage.DoNotCheckCache)。我無法做到這一點,因爲有很多這樣的更新使用。
在上面的代碼片段中,使用setter方法進行更新,在這種情況下,我們如何指定忽略緩存的提示?或者有沒有其他方法可以使用setter對象來執行強制更新?
My problem is similar to this : http://www.eclipse.org/forums/index.php/m/660750/
在此先感謝您。
是啊,我現在已經刪除了堅持通話。我想用同一組值更新的原因是因爲狀態字段有可能從不同的來源被操縱。在這種情況下,我希望狀態字段也從應用程序更新。目前它不會發生,因爲eclipselink緩存不知道直接更改。你能給我一個使用虛擬櫃檯的例子嗎? – user1096318 2011-12-13 18:54:59