在 Hibernate 世界中,您通常可以让单元测试看起来通过,但实际上有一些错误没有出现,因为您正在处理缓存数据。例如,您可以保存一个父级及其子级,认为它正在级联保存。如果你在保存后重新查询父集合并测试子集合的大小,它看起来没问题。但实际上 Hibernate 并没有保存孩子,而是缓存了父母,所以你正在查看未保存的孩子。解决此问题的一种方法是清除保存和查询之间的会话缓存,以便您知道数据直接来自数据库。
这是 ActiveRecord 的问题吗?如果我保存一个模型然后在同一个测试中查询它,我是否可能实际上不是从数据库中获取数据,而是从查询缓存中获取数据?我还没有看到任何试图解决这个问题的样本测试,所以我想知道是否有什么东西使它成为非问题?