亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為某些方法繞過 Jooq 樂觀鎖定和 DefaultRecordListener

為某些方法繞過 Jooq 樂觀鎖定和 DefaultRecordListener

開滿天機 2023-03-17 15:29:56
我想從服務器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給語句。它將具有與調用類似的效果,即僅插入更改的字段。INSERTInsertSetStep.set(Record)record.insert()


查看完整回答
反對 回復 2023-03-17
  • 1 回答
  • 0 關注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號