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

有没有办法告诉 jOOQ 使用其表的主键生成 equals() 和 hashCode() ?

用例是:

我在 Vaadin 网格中使用记录。我可以刷新网格中的单个项目,但 Vaadin 使用 equals 在网格中查找相应的项目。

现在在 UI 中,用户可以选择一条记录并对其进行编辑。编辑后我想刷新网格中的记录。据我所知,jOOQ 正在使用 equals() 的所有字段,因为行已更改,equals() 不再为真。


DIEA
浏览 75回答 1
1回答

动漫人物

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/
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java