由于不大熟悉SpringSide3,找了半天没找到配置hiberante的xml文件,最后搜索一下,出来了:
在E:\MyEclipseWorkplace\LForum\webapp\WEB-INF\config\applicationContext.xml里面有一段:
<!-- Hibernate配置 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="namingStrategy"> <bean class="org.hibernate.cfg.ImprovedNamingStrategy" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">DB_DIALECT</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="">org.hibernate.cache.EhCacheProvider </prop> <prop key="">/ehcache-hibernate.xml</prop> </props> </property> <property name="packagesToScan" value="com.javaeye.lonlysky.lforum.entity*,com.javaeye.lonlysky.lforum.entity.*" /> </bean>
那么如何更新缓存?
缓存在Hibernate中主要有三个方面:一级缓存、二级缓存和查询缓存;一级缓存在Hibernate中对应的即为session范围的缓存,
也就是当 session关闭时缓存即被清除,一级缓存在Hibernate中是不可配置的部分;二级缓存在Hibernate中对应的即为 SessionFactory范围的缓存,
通常来讲SessionFactory的生命周期和应用的生命周期相同,所以可以看成是进程缓存或集群缓存,
二级缓存在Hibernate中是可以配置的:
可以通过class-cache配置(class-cache在class中数据发生任何变化的情况下自动更新),
同时也可通过collection-cache配置(collection-cache仅在 collection中增加了元素或者删除了元素的情况下才自动更新,
也就是当collection中元素发生值的变化的情况下它是不会自动更新的),缓存自然会带来并发的访问问题,这个时候相应的就要根据应用来设置缓存所采用的事务隔离级别,
和数据库的事务隔离级别概念基本一样,没什么多介绍的, ^_^;查询缓存在Hibernate同样是可配置的,默认是关闭的,
可以通过设置cache.use_ query_cache为true来打开查询缓存。
@Entity @Table(name = "forums") @Cache() public class Forums implements java.io.Serializable { ....... }