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_Second Level Cache_First Level Cache - Fatal编程技术网

第二级hibernate缓存-使对象在会话工厂级别可用?

第二级hibernate缓存-使对象在会话工厂级别可用?,hibernate,second-level-cache,first-level-cache,Hibernate,Second Level Cache,First Level Cache,我对hibernate中如何使用第一级和第二级缓存有一些了解。与此相关的问题很多-是的,我同意 但我的困惑是。 在第一级缓存中,除非我提交事务,否则我的数据不会持久保存在数据库中,因此其他会话在此之前不会知道这些更改。 如果二级缓存将实体带到会话工厂级别这是否意味着即使在我提交事务之前,我在一个会话中所做的更改也可以被其他会话使用?? 当使用二级缓存时,数据库的更新何时发生???在第一级,它将在事务结束时发生 我在这个主题中引用了很多讨论,但我没有找到确切的答案 在提交事务之前,您的更新肯定不会

我对hibernate中如何使用第一级和第二级缓存有一些了解。与此相关的问题很多-是的,我同意

但我的困惑是。 在第一级缓存中,除非我提交事务,否则我的数据不会持久保存在数据库中,因此其他会话在此之前不会知道这些更改。 如果二级缓存将实体带到会话工厂级别这是否意味着即使在我提交事务之前,我在一个会话中所做的更改也可以被其他会话使用??

当使用二级缓存时,数据库的更新何时发生???在第一级,它将在事务结束时发生


我在这个主题中引用了很多讨论,但我没有找到确切的答案

在提交事务之前,您的更新肯定不会与其他会话共享。如果发生类似的情况,这是一个严重的错误

有无2LC的DB提交没有区别,除了2LC可能会在DB完全提交之前使事务失败。JPA和Hibernate的非JPA事务都执行两阶段提交,首先通知所有资源事务正在提交,获取一些锁等。如果所有资源成功,更改将被持久化/发布

事务缓存与常规数据库没有太大区别:它假装已经应用了更改,但对其他事务隐藏更改;这称为多版本并发控制(MVCC)