我正在使用EclipseLink提供程序與mysql數據庫交談。我注意到,在我的應用程序的區域中,庫返回的查詢數據與數據庫不匹配。Java EclipseLink持久性庫返回的數據不正確
查詢是:
@NamedQuery(name = "EmailAddress.findAll", query = "SELECT e FROM EmailAddress e")
該查詢是正確的,我敢肯定這一點。我使用運行該查詢的代碼是:
EntityTransaction entr = em.getTransaction();
entr.begin();
emailAddresses = em.createNamedQuery("EmailAddress.findAll").getResultList();
em.close()
我把一個斷點上接近,這樣我可以看到EMAILADDRESS列表中的內容,大約1時在3它的陣列填充不正確。 多一點背景 - 我有一個表列出名稱,單擊名稱彈出對話框,並允許您更改名稱,點擊保存後關閉對話框並更新表(數據庫和用戶界面),有時候用戶界面不正確更新,編輯的名稱不會更新。更新運行包含上述塊的代碼。數據庫在代碼運行之前正確更新,只是該數組未正確填充。
有沒有其他人有任何與此有關的問題或有任何想法?
任何幫助非常感謝!
我絕對只是打開和關閉查詢/更新,我認爲我正確調用各自的方法。我已經在幾個場景中發生了這種情況,現在所有人都做了類似的行爲,但在不同的桌子上。如果我繼續編輯相同的名稱,那麼有時甚至會跳回到3或4編輯前的內容,這表明可能某些內容正在被持久性庫緩存? – chvck 2011-01-10 13:08:44