2011-11-24 58 views
0

我正在使用struts的<s:action>標記來使用JPA API從數據庫加載屬於另一個對象的元素列表(@OneToMany關係)。<s:action>不加載OneToMany列表的最新更新

問題是,當我添加新元素到這個列表中時,<s:action>在很長一段時間後(caché)沒有顯示這些最近的對象。

如何獲得最新列表以顯示?

+0

同意Dave所說的可能是緩存的情況,並在UI級別暴露您的域數據意味着您有一些意外行爲的風險更好地將其與視圖層分開。 –

回答

0

這可能是瀏覽器緩存問題:禁止在該頁面上緩存。

另外,我真的不主張爲此使用<s:action>。海事組織的視圖層應儘可能愚蠢。

這種初始化工作屬於動作或其服務之一,它更容易測試,並且不會遇到這個問題(或其他一些細微的陷阱,但它們不會來玩在這個用例中,我認爲)。

+0

謝謝,但出於學習的目的,我認爲這是一種服務器caché,因爲我從我的db中刪除了一行數據,並且標記的結果仍顯示數據已被刪除。我忘記了一些參數或配置? (我嘗試了不同的瀏覽器並刪除了caché,我也在eclipse的控制檯中看到了結果) –

+0

@DanielFlores您是否嘗試*清除瀏覽器緩存或關閉緩存?它可能*你有一些數據緩存設置,但如果在寫入之後需要更新時間才能更新,那麼它非常糟糕。 –

+0

謝謝,(持久性緩存?)我解決了這個與em.refresh很長一段時間後:(http://stackoverflow.com/questions/5295386/entitymanager-doesnt-refresh-the-data-after-querying :( –