【发布时间】:2020-05-15 14:58:54
【问题描述】:
从 2.1.3 迁移到 2.1.4 或更高版本后,我发现几乎所有 DataJPA 测试都开始失败。我发现 Spring Data JPA 出于某种原因尝试将所选结果放入 HashSet(cache?) 的问题。 HashSet 本身调用 hashCode,在这里我遇到了延迟加载的问题。
是否有人知道这两个版本之间发生了什么变化,是否可以关闭或控制此类行为?
我发现 this issue 正在迁移 String Boot,但降级 H2 对我没有帮助
更新 1:我使用 Lombok 生成带有所有字段的equals&hashCode
【问题讨论】:
-
与问题没有直接关系,但
Lombok的equals和hashCode的默认实现在实体的情况下可能非常昂贵,我强烈建议您调整这些和exclude 任何映射的字段和集合(如果可能)。这是一篇关于该主题的好文章:How to implement equals and hashCode using the JPA entity identifier (Primary Key)
标签: java spring hibernate spring-boot spring-data-jpa