读书人

Hibernate 缓存计策

发布时间: 2012-09-17 12:06:51 作者: rapoo

Hibernate 缓存策略
着实让我郁闷了一把的异常:java.lang.UnsupportedOperationException: Can't write to a readonly object
at org.hibernate.cache.ReadOnlyCache.lock(ReadOnlyCache.java:68)
相关知识:
缓存的方式有四种,分别为:

  CacheConcurrencyStrategy.NONE

  CacheConcurrencyStrategy.READ_ONLY,只读模式,在此模式下,如果对数据进行更新操作,会有异常;

  CacheConcurrencyStrategy.READ_WRITE,读写模式在更新缓存的时候会把缓存里面的数据换成一个锁,其它事务如果去取相应的缓存数据,发现被锁了,直接就去数据库查询;

  CacheConcurrencyStrategy.NONSTRICT_READ_WRITE,不严格的读写模式则不会的缓存数据加锁;

  CacheConcurrencyStrategy.TRANSACTIONAL,事务模式指缓存支持事务,当事务回滚时,缓存也能回滚,只支持JTA环境,不支持ehcache!

异常原因,缓存策略设置成了read_only,read_only 不允许修改操作,
解决方案:改成NONSTRICT_READ_WRITE,因为该对象不经常修改

读书人网 >软件架构设计

热点推荐