gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:44:49 24 4
gpt4 key购买 nike

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

用例是:

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

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

最佳答案

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

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

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

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

关于java - 使用表主键在 Record 中生成 equals 和 hashCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56338661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com