mybatis如何指定ehcache缓存?

零点三六 发布于 2012/02/23 00:00
阅读 8K+
收藏 2

不想使用defaultCache , 我在ehcache.xml配置了多个中缓存方案 , mybatis的配置文件中如何指定这些方案呢?

加载中
0
零点三六
零点三六

还是我自己回答吧 ,  

首先在ehcache.xml设置 <cache name="zzugxy" ...>

然后在mybatis中设置<mapper namespace="com.amar.db.ibatis.dao.AreaDAO">

namespace和name相等,就指定了该缓存方案

edeis2011
edeis2011
可不可以具体些,我遇到此问题
0
demon
demon

官方文档里面写得很清楚,自己找找吧,兄弟。

零点三六
零点三六
mybatis的官方文档只说了自己缓存的配置和接口, mybatis-ehcache的官方文档用的是defaultCache 我就是找不到了才上来问的啊
0
零点三六
零点三六
难道只能 使用spring 的拦截器结合ehcache吗?
0
唐代de豆腐
唐代de豆腐
我没搞明白 写的是什么,
0
唐代de豆腐
唐代de豆腐
r反正 我报错了,,
0
零点三六
零点三六
你想做什么?
0
p
phb

引用来自“amar”的答案

还是我自己回答吧 ,  

首先在ehcache.xml设置 <cache name="zzugxy" ...>

然后在mybatis中设置<mapper namespace="com.amar.db.ibatis.dao.AreaDAO">

namespace和name相等,就指定了该缓存方案

楼上说的是可以在mybatis中用ehcache缓存,但是没有跟mybatis二级缓存关联上吧, U/d/c操作时,缓存不会改变。<mapper namespace="com.amar.db.ibatis.dao.AreaDAO">下面加 <cache />才应该是楼上想要的效果吧,<cache type="aa"/> aa可以是你自定义的缓存管理类,需要继承org.mybatis.cache.Cache接口

0
唐代de豆腐
唐代de豆腐
我如何取得缓存中的数据呢?
edeis2011
edeis2011
你用的是什么方式?ehcache-spring-annotations?我用了这个不起作用,mybatis-ehcache 走了缓存,但是没有数据,很是奇怪
零点三六
零点三六
我用的是注解的方式,mybatis用的是自动实现接口的方式,在接口上使用注解,如: @Cacheable( cacheName ="allCache" ) public List<Area> getArea( Area area );
0
龙鸣
龙鸣
public EhcacheCache(final String id) {
        if (id == null) {
            throw new IllegalArgumentException("Cache instances require an ID");
        }
        this.id = id;
        if (!CACHE_MANAGER.cacheExists(this.id)) {
            CACHE_MANAGER.addCache(this.id);
        }

    }

mybatis在构建cache的时候会去查询manager里是否已经存在的,这里配置和namespace一致就可以,因为mybatis默认建立的cache的名字就是namespace,所以楼主的回答是正确的,学习啦。

返回顶部
顶部