1 回答

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