在做一个项目时出现了在对一个数据删除时,相关联的数据没有及时更新问题,这是因为hibernate的缓存问题,每次读取的时候会从缓存内查询,造成数据获取的不是最新的,这里我分享我的解决方法。
首先我加入了c3p0连接池。
具体设置方法导入c3p0-0.9.5.2.jar或者其它版本的jar包以及依赖jar包
然后再hibernate配置文件加入配置
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="automaticTestTable">Test</property>
<property name="hibernate.c3p0.max_statements">100</property>
<property name="hibernate.c3p0.idle_test_period">120</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="c3p0.testConnectionOnCheckout">true</property>
<property name="c3p0.idleConnectionTestPeriod">18000</property>
在之后就是在每次执行查询的时候删除缓存。调用session的clear方法。
项目中对数据删除时,因Hibernate缓存问题,相关联数据未及时更新,每次读取从缓存查询,获取的不是最新数据。解决方法为加入c3p0连接池,导入相关jar包,在Hibernate配置文件添加配置,每次执行查询时调用session的clear方法删除缓存。
1297

被折叠的 条评论
为什么被折叠?



