为了账号安全,请及时绑定邮箱和手机立即绑定

使用表主键在 Record 中生成 equals 和 hashCode

使用表主键在 Record 中生成 equals 和 hashCode

DIEA 2022-12-21 11:58:25
有没有办法告诉 jOOQ 使用其表的主键生成 equals() 和 hashCode() ?用例是:我在 Vaadin 网格中使用记录。我可以刷新网格中的单个项目,但 Vaadin 使用 equals 在网格中查找相应的项目。现在在 UI 中,用户可以选择一条记录并对其进行编辑。编辑后我想刷新网格中的记录。据我所知,jOOQ 正在使用 equals() 的所有字段,因为行已更改,equals() 不再为真。
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

jOOQ 作为一个基于 SQL 的 API 假定记录是一个没有标识的元组。因此,将一个记录与另一个记录进行比较默认为将 r1 的每个属性与 r2 的每个对应属性进行比较。

这与union两个集合之间的工作方式或distinctSQL 中的操作相同,两者都不关心 ID,只关心记录的值。

覆盖 POJO 和记录的内置equals()hashCode()实现应该很简单。对于大多数功能,jOOQ 的内部结构不应该依赖于此实现(但有一点风险是不正确的,我不记得了)。

我为此创建了一个功能请求:https ://github.com/jOOQ/jOOQ/issues/8705 。同时,您将需要使用自定义代码部分自己滚动:https ://www.jooq.org/doc/latest/manual/code-generation/codegen-custom-code/


查看完整回答
反对 回复 2022-12-21
  • 1 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信