【问题标题】:Migrate spring boot 2.1.3 -> 2.1.4 cause problem with data jpa tests迁移 spring boot 2.1.3 -> 2.1.4 导致数据 jpa 测试出现问题
【发布时间】: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

【问题讨论】:

标签: java spring hibernate spring-boot spring-data-jpa


【解决方案1】:

在我的情况下,问题在于返回 Collection<Entity> 的自定义存储库方法。迁移后,所有这些方法都开始调用实体的hashCode 方法,该方法会触发延迟加载。

因此,快速的解决方案是将所有返回类型从 Collection 更改为 List

我还报告了一个错误https://jira.spring.io/browse/DATAJPA-1729

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 2019-09-22
    • 1970-01-01
    • 2021-06-24
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多