Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 清除休眠二级缓存_Hibernate_Session_Transactions_Sessionfactory_Second Level Cache - Fatal编程技术网

Hibernate 清除休眠二级缓存

Hibernate 清除休眠二级缓存,hibernate,session,transactions,sessionfactory,second-level-cache,Hibernate,Session,Transactions,Sessionfactory,Second Level Cache,我想通过调用以下方法从二级缓存中清除缓存数据: sessionFactory.getCache().evictEntityRegions(); 我只是想知道,这样做有什么害处吗?例如:若我试图在事务中间清除缓存,会发生什么 提前谢谢。不,这样做没有害处。实际上,当您根据定义的逐出/过期策略将缓存提供程序配置为逐出/过期项目时,也会发生同样的情况。Hi Dragan,我有一个例子。假设某个事务正在运行以从中获取数据,并且二级缓存当时有数据。同时,另一个线程在上一个事务尚未完成时退出所有区域缓存。

我想通过调用以下方法从二级缓存中清除缓存数据:

sessionFactory.getCache().evictEntityRegions();
我只是想知道,这样做有什么害处吗?例如:若我试图在事务中间清除缓存,会发生什么


提前谢谢。

不,这样做没有害处。实际上,当您根据定义的逐出/过期策略将缓存提供程序配置为逐出/过期项目时,也会发生同样的情况。

Hi Dragan,我有一个例子。假设某个事务正在运行以从中获取数据,并且二级缓存当时有数据。同时,另一个线程在上一个事务尚未完成时退出所有区域缓存。那么在这种情况下会发生什么呢。我是否可以从该事务中的缓存中获取null,然后发生db命中?有可能出现任何问题吗?@VikasVats在这种情况下,对象已经在一级缓存(会话)中,并将在事务结束时从那里获取。如果手动将对象从会话中逐出,或者手动清除整个会话,则该对象只需从数据库中重新加载,并存储在一级和二级缓存中。这方面不可能有任何问题。