3

私は<cache/>xml マッパー ファイルを介してアクティブ化された第 2 レベルのキャッシュで MyBatis を使用しています。

たとえば、直接 jdbcTemplate を介して、MyBatis から切り離された基礎となる DB/DataSource と対話したいとします。

MyBatisがキャッシュされたクエリ結果を保持しているテーブルでjdbcTemplateを介して挿入/更新/削除すると、MyBatisキャッシュが適切にフラッシュされることをどのように保証できますか。

言い換えれば、特定のキャッシュ名前空間の MyBatis マッパーの外部から MyBatis にそのキャッシュを強制的にフラッシュさせるにはどうすればよいでしょうか?

注釈については承知して@Options(flushCache=true)いますが、これはマッパー インターフェイスの外では機能しないようです。

4

2 に答える 2

0

こんにちは、春を使用したため、別のアプローチを使用しました。セッション実装を自動配線し、適切なメソッドを呼び出します

public class SomeServerClass{

    @Autowired
    private org.mybatis.spring.SqlSessionTemplate sqlSessionTemplate;

    private void someClearMethod(){
        sqlSessionTemplate.clearCache();
    }
}

インターフェイス org.apache.ibatis.session.SqlSession を使用すると、同じインスタンスを参照します

于 2016-02-03T09:08:10.383 に答える