java – MyBatis:如何绕过本地缓存并直接命中特定选择的数据
我使用MyBatis 3.1. 用例1:’从双重选择sysdate’. 用例2:从一个线程中“选择”并不总是看到另一个线程写入的值.
线程2:
我偶尔会在服务器上收到MyException错误,但无法在我的本地计算机上重现.在所有情况下,对象始终在DB中.所以我猜错误取决于第一次存储的对象是否在MyBatis本地缓存中,等待5分钟没有帮助,因为它从不检查实际的数据库. 所以我的问题是如何在不退回普通JDBC的情况下解决MyBatis中的上述用例? 最佳答案
我不知道绕过本地缓存的方法,但有两种选择如何实现您的需要.
第一个选项是在select上设置flushCache =“true”.这将在语句执行后清除缓存,以便下一个查询将命中数据库.
另一种选择是使用STATEMENT级本地缓存.默认情况下,在SESSION期间使用本地缓存(通常转换为事务).这由localCacheScope选项指定,并按会话工厂设置.因此,这将影响使用此mybatis会话工厂的所有查询. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |