2011-12-14 104 views
0

雖然列值應該是相同的,但我期望使用eclipselink進行強制更新。目前在這種情況下Eclipselink不會生成更新查詢,但我正在查看是否有任何配置更改可以使eclipselink生成UPDATE語句(用於setXXXX列),而不管列的值是否相同作爲新的價值與否。任何幫助表示讚賞。提前致謝。eclipselink中的強制更新

回答

0

更可能是有問題的實體是cached - 畢竟這是the default behavior。根據需要調整此設置。

+0

@Sankaran謝謝你的迴應。你能舉一個例子,說明哪種調整可以強制執行並更新由eclipselink生成的sql,即使緩存值和數據庫中某列的值是相同的? – user1096318

+0

如果一個實體沒有被緩存,我將_think_ Eclipselink寫入數據庫。這說我很好奇,當你知道**字段值沒有改變時,通過寫入數據庫可以達到什麼目的? –

+0

@Sankaran不,它不生成更新語句,即使它不在緩存中(我嘗試刷新)。我試圖這樣做的原因是,每次更新嘗試都需要調用該行的觸發器。由於eclipselink並沒有真正做更新,我們無法跟蹤這些嘗試。 – user1096318

0

使用DescriptorCustomizer我能夠覆蓋由eclipselink生成的更新sql。我在這裏提供了一些代碼示例:eclipselink hints for setter updates

這需要很多代碼更改。如果你們中的任何一個有更好的干擾方式(只需添加一些註釋或一些配置更改),請告訴我。