kag*_*ag0 5 java database orm jooq
我想使用POJO作为源更新JOOQ记录中的已更改字段.Record.from(Object)几乎是正确的,但根据文件
生成的记录将为所有值将其内部"已更改"标志设置为true.
我只希望实际更改的字段(如说,确定Objects.equals(Object, Object))更新其标志.
这样做的两个原因是:
此实施的原因...
生成的记录将把所有值的内部“已更改”标志设置为 true。
...很简单:如果不以这种方式实现,就无法强制更新未更改的值。在某些用例中这是需要的(例如批处理、避免太多不同的 SQL 字符串等)。该Record.from()方法与其他方法一致Record,例如Record.set(Field, Object)。
您可以修补内部更改的标志,如下所示:
// Load all values and mark them all as "changed"
record.from(object);
// Undo the undesired flags
for (int i = 0; i < record.size(); i++)
if (Objects.equals(record.get(i), record.original(i)))
record.changed(i, false);
Run Code Online (Sandbox Code Playgroud)
我还在 jOOQ 中创建了一个功能请求。也许API可以改进,因为很多人都有这个需求: https: //github.com/jOOQ/jOOQ/issues/5394
| 归档时间: |
|
| 查看次数: |
2219 次 |
| 最近记录: |