如何解决@CacheNamespace 和 @CacheNamespaceRef
版本:3.5.1 缓存A:
@Mapper
@CacheNamespace
public interface CacheA {
@Select("select 1 from dual")
int testA();
}
缓存B
@Mapper
@CacheNamespaceRef(CacheA.class)
public interface CacheB {
@Select("select 1 from dual")
int testB();
}
当mybatis.config.xml时,一切正常。
<mappers>
<mapper class="cn.test.mybatis.CacheDao.CacheA"/>
<mapper class="cn.test.mybatis.CacheDao.CacheB"/>
</mappers>
当我尝试这样做时。
<mappers>
<mapper class="cn.test.mybatis.CacheDao.CacheB"/>
<mapper class="cn.test.mybatis.CacheDao.CacheA"/>
</mappers>
有一些错误。 我在源代码中找到了答案。 MapperBuilderAssistant.java:265
...
if (unresolvedCacheRef) {
throw new IncompleteElementException("Cache-ref not yet resolved");
}
...
我觉得顺序很重要。 但是当我将 sprintboot 与 mybatis 一起使用时,我可以控制它们的顺序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。