Mybatis の使用を含む JUnit テストがあります。テストの開始時に、テーブル内のレコード数を取得しています。
テストの最後に、追加のレコードがテーブルに存在することを期待し、この条件を検証するためのアサートを行います。ただし、2 番目のクエリは最初のクエリとまったく同じ数のレコードを返すことがわかりました。
新しいレコードが確実にテーブルに挿入されていることはわかっています。
これはキャッシュに関係しているのではないかと考えたので、セッションに関連付けられているすべてのキャッシュをフラッシュしてみました。も使用してみsetCacheEnabled(false)
ましたが、それでも同じ結果です。
これが私のコードフラグメントです-
@Test
public void config_0_9() {
session.getConfiguration().setCacheEnabled(false);
cfgMapper = session.getMapper(CfgMapper.class);
int oldRecords = cfgMapper.countByExample(null);
messageReprocessor.processSuspendedMessages();
session.commit();
int newRecords = cfgMapper.countByExample(null);
assertTrue(newRecords == oldRecords + 1);
}