首页 > 解决方案 > 自使用 spring.main.lazy-initialization: true 的 spring boot 2.5.x 以来,使用数据库的测试失败

问题描述

我们用来spring.main.lazy-initialization: true在我们的 spring boot 2.4.x 应用程序上运行我们的测试

自 Spring Boot 2.5.x 以来,使用spring.main.lazy-initialization: truespring.jpa.defer-datasource-initialization: true,依赖于数据库中某些数据的所有测试都失败了。

当我设置spring.main.lazy-initialization: true时,一切都恢复正常。

当我运行测试时,数据库模型是从实体中推断出来的,数据是从 data.sql 文件中加载的。当我正常运行 API 时,不管有没有延迟初始化,都没有问题

作为一个后备解决方案,我们总是设置spring.main.lazy-initialization: true,但我想了解为什么自 2.5.x 以来我们不能再在测试中使用延迟初始化?

标签: javaspringspring-bootspring-data-jpaspring-boot-test

解决方案


推荐阅读