spring mybatis缓存问题

kidbei 发布于 2013/04/16 11:25
阅读 6K+
收藏 0

用spring/ehcache/mybatis-ehcache

配置了缓存FIFO,

磁盘确实生成了对象的序列化文件,可是每次访问后台还是会打印出查询sql语句,我怎么判断缓存起没起作用呢?

加载中
0
E
Ellipse
命中缓存有日志的吧
0
不是小白
不是小白
如果缓存起作用了,那么查询语句只会输出一次。。。看看有什么配置没有加的,比如说mapper中的cache设置
kidbei
kidbei
回复 @花开自在 : 0是啥东西?
不是小白
不是小白
回复 @kidbei : 额,你的缓存配置文件里面是怎么配置的,我记得 ehcache 默认是 0 的。。。
kidbei
kidbei
回复 @花开自在 : 没少,少了会报异常的,DEBUG net.sf.ehcache.store.disk.Segment- put added 0 on heap 第一次访问出现了这种信息,后面访问就没有了,只有sql
不是小白
不是小白
回复 @kidbei : 各种jar包都没少吗?
kidbei
kidbei
加了,可是每次都还是出sql语句
0
零点三六
零点三六
关闭数据库也能出数据
0
不是小白
不是小白

你修改下配置文件:ehcache.xml   

<defaultCache
           maxEntriesLocalHeap="10000"
           maxEntriesLocalDisk="1000"
           eternal="false"
           timeToIdleSeconds="600"
           timeToLiveSeconds="1200">
      <terracotta/>
    </defaultCache>

不是小白
不是小白
回复 @kidbei : 额,你先修改下你的ehcache.xml 文件配置,试试看
kidbei
kidbei
能解释下特别的地方吗?谢谢哥们儿
0
whaon
whaon
是不是参数不一样
kidbei
kidbei
是一样的,就是简单的查询列表,我不断刷新,结果都是重新查询
0
不是小白
不是小白

引用来自“花开自在”的答案

如果缓存起作用了,那么查询语句只会输出一次。。。看看有什么配置没有加的,比如说mapper中的cache设置
这个默认是 0 ,就是 不保存缓存的意思。。。
 
<defaultCache
           maxEntriesLocalHeap="0"
           eternal="false"
           timeToIdleSeconds="1200"
           timeToLiveSeconds="1200">
      <terracotta/>
    </defaultCache>

kidbei
kidbei
回复 @花开自在 : 注解不会啊,没看过,我直接用的mybatis-ehcache.jar这个包,mybatis自己有缓存接口,这样就不归spring管理缓存了,用spring管理缓存有资料吗?求给份
不是小白
不是小白
用注解吧,你这个原因好像是找不到类,用注解,不要指明 implementation 。。。
kidbei
kidbei
报异常了: org.apache.ibatis.cache.CacheException: Could not instantiate cache implementation (class org.mybatis.caches.ehcache.LoggingEhcache). Cause: java.lang.reflect.InvocationTargetException
0
不是小白
不是小白
 这个包加上没?
不是小白
不是小白
回复 @kidbei : 这是一个包。。。
kidbei
kidbei
ehcache.jar和ehcache-core.jar是什么关系呢?
不是小白
不是小白
回复 @kidbei : ehcache.jar是缓存的核心包,mybatis-ehcache.jar相当于是 ehcache与mybatis之间的桥梁。。。
kidbei
kidbei
加了,还是一样。。。这俩jar有什么关系?
0
xmut
xmut

请问有没有在Mapper中加入这句?

<cache type="org.mybatis.caches.ehcache.LoggingEhcache" />


kidbei
kidbei
加了,我DEBUG了一下Ehcache类中的get()方法,发现每次请求它get到的都是空,key是有值的。这是什么情况
返回顶部
顶部