有没有办法告诉 jOOQ 使用其表的主键生成 equals() 和 hashCode() ?用例是:我在 Vaadin 网格中使用记录。我可以刷新网格中的单个项目,但 Vaadin 使用 equals 在网格中查找相应的项目。现在在 UI 中,用户可以选择一条记录并对其进行编辑。编辑后我想刷新网格中的记录。据我所知,jOOQ 正在使用 equals() 的所有字段,因为行已更改,equals() 不再为真。
1 回答
动漫人物
TA贡献1815条经验 获得超10个赞
jOOQ 作为一个基于 SQL 的 API 假定记录是一个没有标识的元组。因此,将一个记录与另一个记录进行比较默认为将 r1 的每个属性与 r2 的每个对应属性进行比较。
这与union
两个集合之间的工作方式或distinct
SQL 中的操作相同,两者都不关心 ID,只关心记录的值。
覆盖 POJO 和记录的内置equals()
和hashCode()
实现应该很简单。对于大多数功能,jOOQ 的内部结构不应该依赖于此实现(但有一点风险是不正确的,我不记得了)。
我为此创建了一个功能请求:https ://github.com/jOOQ/jOOQ/issues/8705 。同时,您将需要使用自定义代码部分自己滚动:https ://www.jooq.org/doc/latest/manual/code-generation/codegen-custom-code/
添加回答
举报
0/150
提交
取消