hibernate更新数据后,未能查询时不能立即获得问题

项目中对数据删除时,因Hibernate缓存问题,相关联数据未及时更新,每次读取从缓存查询,获取的不是最新数据。解决方法为加入c3p0连接池,导入相关jar包,在Hibernate配置文件添加配置,每次执行查询时调用session的clear方法删除缓存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做一个项目时出现了在对一个数据删除时,相关联的数据没有及时更新问题,这是因为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方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值