在Mybatis的二级缓存中可以设置各种属性,这些属性可以通过 cache 元素的属性来修改。比如:
<cache
eviction="FIFO"
flushInterval="60000"
size="512"
readOnly="true"/>
readOnly属性,到底有什么作用?
当你设置readOnly=true的时候,cache里面存放对象引用,用户A从cache里面取出对象之后,如果A对对象进行了修改,其他用户B再从cache取出对象,则会发现对象已经被修改。设置ReadOny=True的目的是:告诉用户不要从缓存中取出之后,对对象进行修改。
cache里面存放对象的序列化,用户A从cache里面取出对象之后,如果A对对象进行了修改,其他用户B再从cache取出对象,对象是不会变的。设置ReadOny=False的目的是:告诉用户从缓存中取出之后,可以对对象进行修改,而不影响cache里面的对象。
望采纳,谢谢