我想從服務(wù)器A同步表到B,記錄應該與源完全相同。這就像手動復制工作一樣。該方法是從源記錄中檢索為 json 并插入/更新到目標服務(wù)器以獲取包含版本字段的相同表記錄。我在從源更新到目標時遇到問題,我發(fā)現(xiàn)無論每個字段如何相同,它都會更新修改日期和版本字段。在不關(guān)閉樂觀鎖定參數(shù)和繞過自定義“DefaultRecordListener”類的情況下強制更新這些字段(版本或日期)的任何解決方案
1 回答

慕仙森
解決方法:使用
解決方法:不要使用
TA貢獻1827條經(jīng)驗 獲得超8個贊
從 jOOQ 3.11 開始,無法使用開箱即用的功能繞過記錄版本或時間戳的設(shè)置。我已經(jīng)創(chuàng)建了一個功能請求來在 jOOQ 3.12 中實現(xiàn)它: https: //github.com/jOOQ/jOOQ/issues/8924
有一些解決方法,所有這些都假設(shè)您已經(jīng)關(guān)閉了Settings.executeWithOptimisticLocking
數(shù)據(jù)復制邏輯
解決方法:使用RecordListener
version - 1
如果您使用的是記錄版本(不是時間戳),則可以在存儲記錄之前將記錄版本設(shè)置為。這將導致版本再次更新為相同的值。黑客攻擊,但可能已經(jīng)足夠好了。
解決方法:為此目的重新生成表
您可以在沒有記錄版本/時間戳的情況下第二次重新生成此操作中涉及的所有表,并使用這些替代生成的表進行數(shù)據(jù)復制。
解決方法:不要使用UpdatableRecord
UpdatableRecord
您可以編寫實際的INSERT
語句,而不是使用。請注意,您可以通過方法將 any 傳遞Record
給語句。它將具有與調(diào)用類似的效果,即僅插入更改的字段。INSERT
InsertSetStep.set(Record)
record.insert()
添加回答
舉報
0/150
提交
取消