spring与hibernate,session事务学习

看了很多篇别人讲的大概理解了(个人理解,只谈大概):
首先整体的事务是由spring管理的,它主要是通过封装管理hibernate的session。但是对事务的操作应该是老大spring叫hibernate干的,最后应该都会走到jdbc。
session:知道了hibernate中有4种状态,那都是对应一个session时,一般操作都不是自己获取session,所以一般不会遇到跟想的不一样的。(如:https://blog.csdn.net/Dug_Zhang/article/details/103100166方式1)
hibernate一级缓存:看了mybatis也有,其实也就是一次链接中有些东西放缓存,查的快,同上(但是一般操作都不是自己获取session,所以一般一级缓存没啥用到地方)。
hibernate二级缓存:这个是真的缓存,一级缓存相当于一次链接内共享,二级相当于存起来,随时用(3级没看)。
所以:一个session只有一个事务一个事务只有一个session,看你的事务定义到那一层,这是jdbc链接那层。而spring管理的一个大事务,那中间n个session也可以吧,但是也是串行的。
所以:最底下,是一个链接一个事务,一个事务一个session,一个session一个链接。(个人观点,无法证实)。

上一篇:Hibernate之二级缓存


下一篇:来说说JPA、Hibernate、Spring Data JPA之间的什么关系?