java - Spring Data 存储一个对象,然后使用查询在测试中找到它
问题描述
我有一个使用 H2 和@DataJpaTest
. 该代码在作为服务运行时运行良好。
我存储一个对象,然后使用查询来查找它。但是,该对象永远不会返回。出于某种原因,尽管从repository.save(object)
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = TestConfig.class)
@DataJpaTest
public class MyObjectRepositoryTest {
@Autowired
private MyObjectRepository myObjectRepository;
@Test
public void saveAndFindObject() {
MyObject object = new MyObject
object.setName("John");
repository.save(object);
MyObject returnedObject = repository.findByName("John");
}
}
实体
@Entity
@Table(name = "my_object")
@Data
public class MyObject{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
//All caps for Spring Batch reasons
@Column(name = "name")
private String NAME;
}
它已经封装在事务中,因此应该共享会话,但返回的对象仍然存在null
。如何确保我可以查询我专门存储在单元测试中的对象?
编辑:正如@wjans 暗示的那样,这适用于干净项目的测试套件。我没有发现这种奇怪行为的明确原因,但我正在通过测试资源顶部文件夹中的 data.sql 文件解决它,因为数据读取正常。
解决方案
推荐阅读
- xml-parsing - 通过 concordion excel 扩展创建 HTML 文档时出现 XML 解析错误
- python - concurrent.futures.ThreadPoolExecutor :KeyboardInterrupt 不会触发 Windows 10 上的应用程序退出
- node.js - 使用反向代理 Nginx 的 Socket.io Socket.onPacket 错误
- java - Java Garbage Collector 会干扰 HPA 的缩减吗?
- swift - 如何在 Swift UIKit 的 if 语句中显示多个警报?
- python - 使用 HTCondor 的 DEAP 替代方案进行多处理
- react-native - 你可以在 flatlist 中多次使用自定义的原生 UI 组件和不同的数据吗?
- c++ - 时间测量的结束时间变量有什么意义吗?
- c++ - 是否有一个合理的场景,其中 == 运算符不是 != 的否定
- javascript - 过滤多个数组并将它们中的对象添加到单个数组中