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

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