将SpringBoot从2.3.9升级到2.4.3会破坏我使用软删除(带@Where)的测试
我已经在我的项目上升级了SpringBoot(2.3.9到2.4.3),但是我的测试失败了(2000年第8次)。 这些测试几乎都与软删除有关,例如:将SpringBoot从2.3.9升级到2.4.3会破坏我使用软删除(带@Where)的测试,spring,spring-boot,testing,spring-data-jpa,Spring,Spring Boot,Testing,Spring Data Jpa,我已经在我的项目上升级了SpringBoot(2.3.9到2.4.3),但是我的测试失败了(2000年第8次)。 这些测试几乎都与软删除有关,例如: var myobjectDatabase = getAMyobjectDatabase(); myobjectDatabaseRepository.save(myobjectDatabase); // When myobjectDatabaseRepository.softDelete(myobjectDatabase); v
var myobjectDatabase = getAMyobjectDatabase();
myobjectDatabaseRepository.save(myobjectDatabase);
// When
myobjectDatabaseRepository.softDelete(myobjectDatabase);
var myobjectRetrieved = myobjectDatabaseRepository.getById(myobject.getId());
// Then
assertThat(myobjectRetrieved).isNull(); // ERROR
所以我进行了调查,如果我在softDelete
和getById
之间添加entityManager.clear()!
如果我添加@Transactional(propagation=propagation.NOT_SUPPORTED)
,情况也一样
但我不喜欢这些“快速修复”。我读过变更日志,但没有读过
谁能帮我或改变我的想法
谢谢 我很惊讶它一开始就奏效了。发生这种情况的原因是第一级缓存,并且在这两者之间没有执行刷新
和清除
,以模拟事务结束。我能想象的唯一变化是,您的测试现在是事务性的,而不是最初的测试。您好@M.Deinum,首先,感谢您的快速响应!您知道为什么它没有出现在变更日志或迁移中吗?(也许我错过了)正如你所说,我检查了测试的日志,结果发现测试现在是事务性的。