首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Hibernate获取当前Session,Hibernate清空当前Session的缓存

每次update时,都要记录更新了什么字段,由什么值更新为什么值。所以使用的是Aop,在@around方法中,joinPoint.proceed()之前,运用方法的反射查询下数据库得到objectOld;joinPoint.proceed()之后,再运用方法反射查询下数据库得到objectNew。但是,因为每次update之前都会get一个model,因为get()方法得到的是 持久化状态 。所以这样就不容易得到update之前的值。我的做法是,在joinPoint.proceed()之前,运用方法的反射查询下数据库得到objectNew,因为此时对model的修改,已经跟进到了持久化状态;然后执行evict()方法,将objectNew转换到游离状态;然后再运用方法反射查询下数据库得到objectOld,再执行evict()将objectOld转换到游离状态。不然的话,会报同一个session里包含两个同一标识的不同model的异常。

01
领券