我想从服务器A同步表到B,记录应该与源完全相同。这就像手动复制工作一样。该方法是从源记录中检索为 json 并插入/更新到目标服务器以获取包含版本字段的相同表记录。我在从源更新到目标时遇到问题,我发现无论每个字段如何相同,它都会更新修改日期和版本字段。在不关闭乐观锁定参数和绕过自定义“DefaultRecordListener”类的情况下强制更新这些字段(版本或日期)的任何解决方案
1 回答
慕仙森
解决方法:使用
解决方法:不要使用
TA贡献1827条经验 获得超7个赞
从 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
提交
取消